当超类为空时,垃圾收集器会收集子类的成员变量吗?如果我们谈论两个线程,一个运行超类而第二个运行子类,答案是否会有所不同?
至于 Android,如果 AsyncTask 完成并且我从我的活动中删除它的引用,那会级联到清理 AsyncTask 中的所有成员变量,还是我必须手动执行此操作?
最后,我可以假设 AsyncTask 线程onPostExecute
在 3 之前的 API 执行后或被取消后关闭并删除吗?
在此先感谢,干杯。
代码:
public class class1 {
public class class2 extends AsyncTask<void, void, void>{
Object object;
class2(){
object = new Object();
}
}
class2 _class2;
class1(){
_class2 = new class2();
}
}
然后我在某处声明一个类型的变量class1 _class1 = new class1()
,然后在执行它并完成它之后,我设置它_class1 = null
会自动删除成员的引用object
并由 GC 收集它吗?