Java 为什么我应该使用onPrepareDialog等来显示Android中的ProgressDialog?
我目前正在使用以下代码显示/隐藏我的Android应用程序中名为from withing MyActivity的ProgressDialog: 现在,由于我在Activities中读了很多关于onCreateDialog的内容,我只想知道我的方法是否有我没有想到的缺点,或者甚至为什么我更喜欢onCreateDialog机制。[更新]Java 为什么我应该使用onPrepareDialog等来显示Android中的ProgressDialog?,java,android,progressdialog,Java,Android,Progressdialog,我目前正在使用以下代码显示/隐藏我的Android应用程序中名为from withing MyActivity的ProgressDialog: 现在,由于我在Activities中读了很多关于onCreateDialog的内容,我只想知道我的方法是否有我没有想到的缺点,或者甚至为什么我更喜欢onCreateDialog机制。[更新] 这种方法的问题是,如果活动被破坏,例如,在轮换时,异步任务会将其保留在内存中,从而造成临时内存泄漏。另外,在活动的onDestroy之后尝试访问ProgressDi
这种方法的问题是,如果活动被破坏,例如,在轮换时,异步任务会将其保留在内存中,从而造成临时内存泄漏。另外,在活动的onDestroy之后尝试访问ProgressDialog时,它会导致IllegalArgumentException。好吧,至少它告诉我不会有那么大的错误。。。无论如何,谢谢你的意见!
private void startTask() {
new MyTask().execute();
}
private class MyTask extends AsyncTask<A, String, C> {
private ProgressDialog pd;
@Override
protected void onPreExecute() {
super.onPreExecute();
this.pd = ProgressDialog.show(MyActivity.this, "Title", "Message", true, true);
pd.setOnCancelListener(new OnCancelListener() {
public void onCancel(DialogInterface dialog) {
MyTask.this.cancel(true);
}
});
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
this.pd.setMessage(values[0]);
}
@Override
protected void onCancelled() {
super.onCancelled();
Toast.makeText(MyActivity.this, "cancelled", Toast.LENGTH_SHORT).show();
}
@Override
protected void onPostExecute(RequestResult result) {
super.onPostExecute(result);
this.pd.dismiss();
}
}