暂停多个Runnables

时间:2016-07-09 01:13:10

标签: java android runnable resume pause

我有一系列的runnables依赖于一些if语句一个接一个地运行。我已经尝试了大约一个月来弄清楚如何暂停和恢复runnables,具体取决于当前正在运行的那个。我无法让它发挥作用。

这是我目前用于暂停方法的内容。在每个runnable的开头,我将一个String放入SharedPreferences,它告诉我当前在哪个runnable。然后我使用该String恢复此暂停方法中的当前runnable。它只是不起作用。它会暂停,但是当我恢复时,它会跳到可运行的不同部分,或者一起跳过不同的可运行部分;或者只是跳到runnables的末尾。有时它会冻结并且不会崩溃,但是什么也不做。

public void Pause(View view){

    if (soundsOn == true){
        mplayerButtonClick.start();
    }
    if(resume == true) {
        handler.removeCallbacks(r);
        handler.removeCallbacks(r2);
        handler.removeCallbacks(r3);
        handler.removeCallbacks(rest);
        handler.removeCallbacks(switching);
        pauseButton.setText("Resume");
        resume = false;
    }else{
        place = preferences.getString("place", "r");
        progress();
        if(place.equals("r")) {
            handler.postDelayed(r, 3000);
        }
        if(place.equals("r2")) {
            handler.postDelayed(r2, 3000);
        }
        if(place.equals("r3")) {
            handler.postDelayed(r3, 3000);
        }
        if(place.equals("rest")) {
            handler.postDelayed(rest, 3000);
        }
        if(place.equals("switching")) {
            handler.postDelayed(switching, 3000);
        }
        pauseButton.setText("Pause");
        resume = true;
    }
}

** progress()指的是恢复进度条。

任何帮助都会非常感激。这让我疯狂了这么久!提前感谢您的任何建议!! :)

0 个答案:

没有答案