aninhado postDelayed / Runnable / Handler Android

Eu estou tentando usar um postDelayed aninhado porque eu preciso fazer algo depois (atrasado por) 5 minutos, pará-lo após (atrasado) 30 segundos, fazer outra coisa e repita os dois eventos no ciclo novamente desde o início. Eu simplesmente não consigo acertar.

código que tenho sofar:

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

O problema com isso é executar bem a primeira execução, mas depois parece empilhar uns sobre os outros ... e todos os atrasos são borked. Eu preciso executar os doisRunnables em exatamente 5 minutos e 30 segundos, depois repita o processo.

questionAnswers(1)

yourAnswerToTheQuestion