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; } }}
