[失敗Code]
1. 在 MyActivity 內定義一個ProgressDialog. 在AsyncTask.doInBackground 內呼叫
mDialog = ProgressDialog.show(MyActivity.this, "Progress Title","Progress Message", true);
2. 在 AsyncTask.onPostExecute 內
mDialog.dismiss();
這種方法, 程式在模擬器中, 會死在 mDialog.dismiss() 那一行, 整個應用程式會關閉.
[修正版]
1. 將ProgressDialog 移往 AsyncTask 中定義, 不定義在 MyActivity 中.
2. 增加 AsyncTask 建構式, 將 mDialog 初始化放在裡面.
mDialog = new ProgressDialog(MyActivity.this);
3. 新增 AsyncTask.onPreExecute()
this.mDialog.setTitle("Progress Title");
this.mDialog.setMessage("Progress Message");
this.mDialog.setCancelable(true);
this.mDialog.show();
4. 在 AsyncTask.onPostExecute() 內新增
if(mDialog.isShowing()) mDialog.dismiss();
這樣作法式可以運作的.
參考資料
1. progressDialog in AsyncTask
沒有留言:
張貼留言