在现有(可能)工作代码中,我看到以下结构:
void someFunc() {
some_irrelevant_code();
new Runnable() {
Handler handler = new Handler();
@Override
public void run()
{
//will run each 5 seconds
doSomething();
if (!needStopSomeThread)
{
handler.postDelayed(this, 5000);
}
}
}.run();
}
我想知道Runnable和Handler是否可以在任意时刻进行垃圾收集。看起来只有runnable引用了处理程序,并且只有处理程序引用了runnable,所以它们都可以被垃圾收集,除非Android有一个引用其中一个的数据结构,例如:处理程序。
1)他们(处理程序和可运行的)都可以被垃圾收集吗?
2)如果他们可以收集垃圾,我怎么能证明它确实发生了呢?