【发布时间】:2015-12-15 16:07:31
【问题描述】:
我的 MainActivity 中有一个静态 AsyncTask。我运行这个 asynctask 从 URL 下载数据。我正在尝试显示异步任务的进度对话框,但它在此行崩溃:private ProgressDialog dialog = new ProgressDialog(mContext);
我将上下文传递给 AsyncTask。
这是我的代码:
private static class MyTasksParse extends AsyncTask<String, String, JSONObject> {
private Context mContext;
private ProgressDialog dialog = new ProgressDialog(mContext);
public MyTasksParse(Context context) {
mContext = context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
this.dialog.setCanceledOnTouchOutside(false);
this.dialog.setMessage("Downloading Files... Please Wait...");
this.dialog.show();
}
@Override
protected JSONObject doInBackground(String... args) {
//get the url and parse it
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
if (dialog.isShowing()) {
dialog.dismiss();
}
}
}
我尝试将mContext 转换为Activity,如下所示:
private ProgressDialog dialog = new ProgressDialog(mContext); 但还是同样的错误。
我不确定我做错了什么。如果有人可以提供帮助,那就太好了!谢谢:)
【问题讨论】:
-
尝试在onPreExecute方法中初始化
-
确定
private ProgressDialog dialog = new ProgressDialog(mContext);行会导致问题,因为mContext是null在mContext = context;行之后移动dialog = new ProgressDialog(mContext);
标签: android android-asynctask android-alertdialog progressdialog