В съществуващия (вероятно) работещ код виждам следната конструкция:
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) Ако те могат да получат събиране на боклука, как мога да докажа, че това наистина се случва?