【发布时间】:2017-12-01 21:05:13
【问题描述】:
Activity 启动 AsyncTask,完成后,该任务需要检查该 Activity 是否被销毁并被垃圾回收。我认为 WeakReference 可以帮助我解决这个问题。但即使我旋转屏幕并且活动被破坏,我仍然不是空的。我做错了什么?
class MyAsyncTask extends AsyncTask<String,String,String> {
WeakReference<ActivitySecond> sactivity;
MyAsyncTask(ActivitySecond a)
{
sactivity = new WeakReference<>(a);
}
@Override
protected String doInBackground(String... strings) {
try {
Thread.sleep(5000);
}
finally {
return "Ok";
}
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if (sactivity!=null)
{
ActivitySecond activity = sactivity.get();
if (activity!=null)
Toast.makeText(activity,s,Toast.LENGTH_LONG).show();
}
}
}
【问题讨论】:
-
它被销毁但不是 gc-ed
标签: java android android-asynctask