奇效在内部的AsyncTask显示AlertDialog:AsyncTask.onPostExecute()显示AlertDialog当应用程序被最小化的原因unresponing UI
private class CheckDeviceConfiguration extends AsyncTask<Void, Void, Boolean> {
private ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = ProgressDialog.show(ActivitySIPCountrySelection.this, "Title", "working...", true);
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
progressDialog.dismiss(); //hide progress dialog previously shown
if (!result) {
AlertDialog.Builder dialog = new AlertDialog.Builder(ActivitySIPCountrySelection.this);
dialog.setCancelable(false);
dialog.setMessage("Message");
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
//do something
}
});
dialog.show();
}
}
@Override
protected Boolean doInBackground(Void... params)
Thread.sleep(5000);
return false;
}
}
:如果应用程序 的的AsyncTask执行期间被最小化如果我点击我的应用程序图标来恢复,用户界面没有响应,活动看起来有点变暗(无效?)。后退按钮不起作用。
编辑:
有人问起我打电话的AsyncTask。那么,从Activity onCreate()。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sip_country_selection);
new CheckDeviceConfiguration().execute();
}
异步任务正确显示进度对话框并将其隐藏在onPostExecute中。
fom你在哪里调用asynctask?((Activity)mContext).finish(); mContext是你的活动上下文。将上下文传递给asynctask构造函数,然后使用该上下文调用finish() – Raghunandan 2013-03-22 17:47:20
编辑,谢谢。添加了onPreExcute()部分。 – 2013-03-22 17:50:24
@Raghunandan完成()没有被调用,忘记它。 – 2013-03-22 17:56:16