我正在处理的项目稍微复杂一点,但我做了这个简单的测试,试图找出我的代码出了什么问题。进度对话框永远不会消失。我有一点他们没有返回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;
}
}
}
答案 0 :(得分:14)
参数错误,请使用:
@Override
protected void onPostExecute(Void result) {
progressDialog.dismiss();
return;
}
答案 1 :(得分:5)
我同意Cesar和Shailendra的回答,但仍然让我对它做了一些改进:
@Override
protected void onPostExecute(Void result) {
if(progressDialog.isShowing())
{
progressDialog.dismiss();
}
return;
}
答案 2 :(得分:2)
@Override
之前缺少onPostExecute
符号。此外,return null
也不是必需的。