首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

应用线程跟踪进度条当前进度示例

2012-08-27 
使用线程跟踪进度条当前进度示例主要是通过package com.example.progressdialogimport android.app.Activ

使用线程跟踪进度条当前进度示例
主要是通过

package com.example.progressdialog;import android.app.Activity;import android.app.Dialog;import android.app.ProgressDialog;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class NotificationTest extends Activity {    static final int PROGRESS_DIALOG = 0;    Button button;    ProgressThread progressThread;    ProgressDialog progressDialog;       /** Called when the activity is first created. */    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        // Setup the button that starts the progress dialog        button = (Button) findViewById(R.id.progressDialog);        button.setOnClickListener(new OnClickListener(){            public void onClick(View v) {                showDialog(PROGRESS_DIALOG);            }        });     }       protected Dialog onCreateDialog(int id) {        switch(id) {        case PROGRESS_DIALOG:            progressDialog = new ProgressDialog(NotificationTest.this);            progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);            progressDialog.setMessage("Loading...");            progressThread = new ProgressThread(handler);            progressThread.start();            return progressDialog;        default:            return null;        }    }    // Define the Handler that receives messages from the thread and update the progress    final Handler handler = new Handler() {        public void handleMessage(Message msg) {            int total = msg.getData().getInt("total");            progressDialog.setProgress(total);            if (total >= 100){                dismissDialog(PROGRESS_DIALOG);                progressThread.setState(ProgressThread.STATE_DONE);            }        }    };    /** Nested class that performs progress calculations (counting) */    private class ProgressThread extends Thread {        Handler mHandler;        final static int STATE_DONE = 0;        final static int STATE_RUNNING = 1;        int mState;        int total;               ProgressThread(Handler h) {            mHandler = h;        }               public void run() {            mState = STATE_RUNNING;               total = 0;            while (mState == STATE_RUNNING) {                try {                    Thread.sleep(100);                } catch (InterruptedException e) {                    Log.e("ERROR", "Thread Interrupted");                }                Message msg = mHandler.obtainMessage();                Bundle b = new Bundle();                b.putInt("total", total);                msg.setData(b);                mHandler.sendMessage(msg);                total++;            }        }                /* sets the current state for the thread,         * used to stop the thread */        public void setState(int state) {            mState = state;        }    }}

热点排行