如果Activity
已被销毁,但AsyncTask
仍然有对该对象的引用,是否有任何方法可以直接查询引用(已销毁)的活动以确定{ {1}}仍然有效?
答案 0 :(得分:3)
在Activity的onDestroy()
方法中,设置一个标志以指示活动已被销毁。
此外,在AsyncTask
中向WeakReference
添加Activity
而非正常引用。
在onPostExecute()
的{{1}}方法中,如果AsyncTask
仍然有值,则活动仍然有效,而WeakReference
本身仍设置为假的。
答案 1 :(得分:0)
尝试将WeakReference
保留在您的活动中。
WeakReference<Activity> ref = new WeakReference<Activity>(activity);
… … …
Activity activity = ref.get();
if (activity != null) {
// DO SOMETHING
}