我有一个关于android中这种简单的频繁发生的情况的问题。Android中的WeakReference/AsyncTask模式
我们有一个主要活动,我们调用的AsyncTask非常久远在MainActivity的参考,以便该的AsyncTask可以更新在MainActivity的意见。
我会分解事件转换为步骤
- MainActivity创建AyncTask,通过其引用。
- AysncTask,启动它的工作,下载十个文件,例如
- 用户更改设备的方向。这导致AsyncTask中的孤儿指针当AsyncTask完成并尝试访问活动以更新状态时,由于空指针而崩溃。
以上部分的解决办法是保持在一个的AsyncTask的WeakReference所推荐的书“临的Android 4.0”
WeakReference<Activity> weakActivity;
in method onPostExecute
Activity activity = weakActivity.get();
if (activity != null) {
// do your stuff with activity here
}
这是如何解决的情况呢?我的问题是,如果我的asynctask正在下载10个文件,并且在5完成后活动重新启动(因为方向改变),那么我的FileDownloadingTask会再次被调用吗?
最初调用的前一个AsyncTask会发生什么?
谢谢,我对问题的长度表示歉意。
感谢您发布这样一个结构合理,措辞严谨的问题。 – Travis