ProgressDialog主要用于大文件拷贝,网络传输时,显示进度。一般使用thread控制ProgressDialog的显示、进度和关闭。
- public class main extends Activity {
- private static boolean isCannel = false;
- private ProgressDialog progressDialog;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- progressDialog = new ProgressDialog (this);
- CharSequence title = "ProgressDialog监听线程处理进度";
- //CharSequence message = getString(R.string.xxx);
- CharSequence message = "当前处理进度";
- ProcessThread mThread = new ProcessThread();
- progressDialog = new ProgressDialog(this);
- progressDialog.setTitle(title);
- progressDialog.setMessage(message);
- progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
- progressDialog.setButton((CharSequence)"取消", mThread);
- progressDialog.setProgress(0);
- progressDialog.setMax(100);
- progressDialog.setOnCancelListener(mThread);
- progressDialog.setOnDismissListener(mThread);
- progressDialog.show();
- mThread.start();
- }
- private class ProcessThread extends Thread implements OnCancelListener, OnDismissListener, OnClickListener{
- public void run() {
- isCannel = false;
- int process = 0;
- while(!isCannel && process < 100) {
- progressDialog.incrementProgressBy(1);
- try {
- sleep(200);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- process ++;
- }
- progressDialog.dismiss();
- finish();
- }
- public void onClick(DialogInterface dialog, int which) {
- isCannel = true;
- }
- public void onDismiss(DialogInterface dialog) {
- isCannel = true;
- }
- public void onCancel(DialogInterface dialog) {
- isCannel = true;
- }
- }
- }
本文介绍了一个使用ProgressDialog进行线程进度监控的实例。通过一个自定义的ProcessThread类,演示了如何在Android应用中设置和更新ProgressDialog的进度条,包括进度条的最大值、初始值及实时进度更新,同时展示了如何处理对话框的取消和消失事件。
408

被折叠的 条评论
为什么被折叠?



