Я пытаюсь использовать вложенные postDelayed, потому что мне нужно что-то сделать после (задержка на) 5 минут, остановить его после (задержка) 30 секунд, сделать что-то еще, а затем повторить оба события в цикл снова с самого начала. Я просто не могу понять.Вложенные postDelayed/Runnable/Handler Android
код у меня есть ГНФАР:
private long EnabledAfter = 300000; // 5 minutes
private long DisabledAfter = 30000; // 30 seconds
public void start_timers(){
on_delayed(EnabledAfter);
}//end method
private void on_delayed(long period_off){
Delayed = new Runnable() {
public void run() {
something.enable(context);
something.enable_else(context, true);
off_delayed(DisabledAfter); // and disable both again delayed
Handler.postDelayed(Delayed, EnabledAfter);
}
};
Handler.postDelayed(Delayed, EnabledAfter);
}//end method
private void off_delayed(long period_on){
Delayed = new Runnable() {
public void run() {
something.disable(context);
something.disable_else(context, false);
on_delayed(period_on); // start the proces again from the start...
//Handler.postDelayed(Delayed, DisabledAfter);
}
};
Handler.postDelayed(Delayed, period_on);
}//end method
Проблема с этим прекрасно работает первый запуск, но потом, кажется, укладывают друг на друга ... и все задержки BORKED. Мне нужно выполнить как Runnable
s ровно 5 минут и 30 секунд, а затем повторить процесс.
mmm, спасибо, это работает! Почему, почему я не подумал об этом? Спасибо за помощь! – slinden77