zagnieżdżony postDelayed / Runnable / Handler Android

Próbuję użyć zagnieżdżonego postDelayed, ponieważ muszę zrobić coś po (opóźnionym) 5 minutach, zatrzymać go po (opóźnionym) 30 sekundach, zrobić coś innego, a następnie powtórzyć oba zdarzenia w cyklu ponownie od początku. Po prostu nie mogę tego zrobić dobrze.

kod mam miękki:

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

Problem z tym polega na tym, że działa dobrze podczas pierwszego uruchomienia, ale wydaje się, że układa się jeden na drugim ... i wszystkie opóźnienia są zablokowane. Muszę wykonać obaRunnables dokładnie 5 minut i 30 sekund, a następnie powtórz proces.

questionAnswers(1)

yourAnswerToTheQuestion