4

如果 anActivity已被销毁,但 anAsyncTask仍然具有对该对象的引用,有没有办法直接查询引用(已销毁)的活动以确定 是否Activity仍然有效?

4

2 回答 2

3

onDestroy()Activity的方法中,设置一个标志,表示Activity被销毁。

此外,在AsyncTask添加 aWeakReferenceActivity不是普通引用。

在 的onPostExecute()方法中AsyncTask,如果 ActivityWeakReference仍然有值,则 Activity 仍然存在,并且Activity自身的标志仍然设置为 false。

于 2012-08-06T19:53:59.507 回答
0

试着保持WeakReference你的活动。

WeakReference<Activity> ref = new WeakReference<Activity>(activity);
… … …
Activity activity = ref.get();
if (activity != null) {
    // DO SOMETHING
}
于 2012-08-06T19:43:39.323 回答