即使在onPostExecute()中運行progressDialog.dismiss,AsyncTask中的進度對話框也不會消失。在異步任務中沒有關閉進度對話框
我已經嘗試過對SO的相關問題實施很多答案,迄今爲止沒有成功。
我相信我必須忽略一些非常基本的東西,但我被卡住了。
任何指向解釋和代碼片段的指針都會很棒,謝謝。
主要
public class Main extends Activity {
String result;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
asyncTask task = new asyncTask("Loading ...", this);
try {
result = task.execute("Question").get();
}
catch (Exception e) {
Log.e("Error: ", e.toString());
}
}
}
的AsyncTask
public class asyncTask extends AsyncTask<String, Void, String> {
private ProgressDialog progressDialog;
private String message;
private Context context;
public asyncTask(String msg, Context ctx) {
this.context = ctx;
message = msg;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(context);
progressDialog.show(context, "", message, true, false);
}
@Override
protected String doInBackground(String... params) {
int count = 100000;
for (int i = 0; i < count; i++) {
// waste time
}
return "Answer";
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
progressDialog.dismiss();
}
}
可能有一些例外,如果這是然後發佈您的logcat輸出的情況。 –
@PareshMayani,沒有例外拋出,logcat是乾淨的 – Mike