Android:如何暂停和恢复可运行的线程?

时间:2014-04-29 06:29:26

标签: java android multithreading

我使用postDelayed runnable线程,当我按下按钮时,我需要暂停并恢复该线程。请任何人帮助我。

这是我的主题:

    protected void animation_music6() {
    music4.postDelayed(new Runnable() {
        public void run() {
              music4.setVisibility(View.VISIBLE);
            animationmusic4();
            holemusic4();

        }
    }, 10000);
}

我需要在按下按钮时暂停线程,然后从暂停线程的位置继续。我习惯暂停线程是:

music4.removeCallbacks(runnable4);

我如何恢复线程?谁能帮帮我吗。有没有办法暂停和恢复线程?我是android的新手,所以请帮我这样做。在此先感谢。

2 个答案:

答案 0 :(得分:2)

我为糟糕的格式道歉

 boolean isPaused = true;

 playButton.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
        isPaused = !isPaused;
        if(isPaused) { 
            music4.removeCallbacks(runnable4);
        }
        else { 
            music4.postDelayed(runnable4, 100);
        }
     }
});

答案 1 :(得分:0)

我有一个类似的问题,我很困惑。 正如这里所教导的那样,我使用postDelayed()在延迟后启动Runnable, 我们说4秒后说。我想实现一个暂停功能,这样如果我暂停,并且在那个时间点,例如还剩2秒,直到可运行的代码应该启动,那么当我稍后恢复时,我希望延迟在确切点恢复在它被暂停的时间,以便postDelayed操作将继续并且将在我恢复后2秒运行该线程。一种计时器freeze()/ unfreeze()操作。 我是否需要使用计时器来实现这一目标?