gpt4 book ai didi

java - AsyncTask 中的弱引用

转载 作者:行者123 更新时间:2023-12-02 11:56:11 25 4
gpt4 key购买 nike

Activity 启动 AsyncTask,完成后,该任务需要检查该 Activity 是否被销毁并进行垃圾收集。我认为 WeakReference 可以帮助我解决这个问题。但即使我旋转屏幕并且 Activity 被破坏,我仍然不为空。我做错了什么?

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();
}
}
}

最佳答案

如果除了弱引用之外没有其他对该对象的引用,则允许该对象被垃圾收集。

但不能保证这实际上完成。

关于java - AsyncTask 中的弱引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47593587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com