从纵向更改为横向后,AsyncTask无法修改UIThread

时间:2012-05-15 10:29:13

标签: android android-asynctask ui-thread

在我的应用程序中,我开始AsyncTask下载一些数据,在UI线程上我开始ProgressDialog。问题是当我从纵向更改为横向时,反之亦然,在任务onPostExecute上我无法忽略ProgressDialogdismiss()函数是在ProgressDialog的实例上调用的,但它不会被忽略。这是为什么?

由于

编辑:

我想我失去了AsyncTask线程中当前活动的引用。这可能吗?如果是,我该如何解决?

编辑: 我不能保留asyncTask的引用并把它放在bundle中吗?

2 个答案:

答案 0 :(得分:1)

尝试使用活动的android:configChanges属性,以便在切换方向时不重新创建。

答案 1 :(得分:1)

在onPostExecute方法中单独使用Handler来解除ProgressDialog,如下所示:

    private Handler finishedHandler = new Handler()
{
    @Override 
    public void handleMessage(Message msg) {
        Progressdialog.dismiss();
    }
};