我正在从事的项目稍微复杂一些,但我做了这个简单的测试来尝试找出我的代码出了什么问题。 进度对话框永远不会消失。 我曾经遇到过他们没有返回 null 的情况。 '
public class SyncTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new mTask(this).execute();
}
public class mTask extends AsyncTask<Void, Void, Void> {
Context mContext;
ProgressDialog progressDialog;
public mTask(Context aContext) {
mContext = aContext;
}
@Override
public void onPreExecute() {
progressDialog = new ProgressDialog(mContext);
progressDialog.setMessage("New...");
progressDialog.show();
}
@Override
public Void doInBackground(Void... params) {
return null;
}
public Void onPostExecute(Void... params) {
progressDialog.dismiss();
return null;
}
}
}
参数错误,用这个:
@Override
protected void onPostExecute(Void result) {
progressDialog.dismiss();
return;
}
我同意 Cesar 和 Shailendra 的答案,但让我对此做一些改进:
@Override
protected void onPostExecute(Void result) {
if(progressDialog.isShowing())
{
progressDialog.dismiss();
}
return;
}
在
@Override
之前缺少 onPostExecute
符号。另外 return null
也不是必需的。