我知道这里有一百万个类似的问题,但这里提出的解决方案都没有解决我遇到的问题。我有一个AsyncTask
加载数据库中的数据。数据加载时会显示不确定的ProgressDialog
(即使在生产代码中,它永不需要明显的时间来加载数据库,但只是为了防止有人构建大数据库)。无法关闭活动回调中的progressDialog
我曾经打电话,直接从AsyncTask
中解雇ProgressDialog
,并且工作正常。问题是,我试图强化更好的问题分离,并且我决定在屏幕上显示内容并不属于AsyncTask
的域,并且确实属于该活动。所以,我实现了一个回调接口的活动,并在活动中我有:
private ProgressDialog progressDialog;
@Override
public void onPreExecute() {
progressDialog = ProgressDialog.show(this,"","Loading. . .",true,true);
}
@Override
public void onPostExecute() {
if (progressDialog != null) {
Logger.d("Dismissing progress dialog");
progressDialog.dismiss();
progressDialog = null;
}
}
logcat的显示,我达到这一记录仪线,但绝不ProgressDialog
驳回。为什么我在回调中无法做到这一点有什么原因吗?
你说得对。我已经移动了“AsyncTask”的创建,并且从不删除原始文件,因此它被创建了两次。 – TBridges42