Относительно проблемы с кучей и утечек памяти,
Я прочитал следующую статью, в которой подчеркивается создание статического класса для части обработчика:
здесь
Теперь следующий код подвержен утечке памяти кучи или нет?
///////////////////Handler 1
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (x == 1) {
///////////////////Handler 2
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if(y == 1) {
///////////////////Handler 3
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//Do work A
}
}, 1000);
}
else
{
// do work B
}
}
}, 1000);
}
else
{
// do work B
}
}
}, 1000);