5 분 후 (지연) 30 초 후 멈추고 다른 작업을해야하기 때문에 중첩 된 postDelayed를 사용하려고합니다. 다시 시작부터주기. 나는 그것을 올바르게 이해하지 못하고있다. 내가 SOFAR이중첩 된 postDelayed/Runnable/Handler 안드로이드
코드 :이와
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된다. 나는 정확히 5 분 30 초에 Runnable
을 모두 실행해야하며 그 과정을 반복합니다.
음, 감사합니다. 왜 왜 이런 생각을 못했을까요? 도와 줘서 고마워! – slinden77