暂停并继续运行Runnable对象?

时间:2013-05-09 14:36:31

标签: java android

我已在我的代码中实现了runnable,我必须通过按下我的应用程序中的按钮来启动它,然后按另一个按钮来停止它。

按下停止按钮时出现问题。它会停止可运行,但是当我按下开始按钮时,我无法再次启动它。

我的代码:

public void onClick(final View v) {
    switch (v.getId()) {
    case R.id.button_TimerStart:
        Log.e("MainActivity", "Clicked");
        r = new Runnable() {
            public void run() {
                if (mService != null) {
                    if(running) {
                        str2 = Ef.getText().toString();
                        str2 = str2.substring(0, 0) + "E" + str2.substring(0, str2.length());
                        mService.sendAlert(mDevice, str2);
                        v.postDelayed(r, 6 * 1000);
                    }
                }
            }
        };
        v.post(r);
        break;
    case R.id.button_TimerStop:
        Log.e("MainActivity", "Clicked");
        if(running = true) {
            running = false;
        }
    default:
        Log.e(TAG,"wrong Click event");
        break;
    }
}

2 个答案:

答案 0 :(得分:4)

请勿使用running标记表示您要停止播放。

而是使用removeCallbacks()从列表中删除Runnables以进行播放。

/to stop the runnable:
v.removeCallbacks(r);

答案 1 :(得分:3)

if(running = true) 

应该是

if(running == true) 

此外,您需要在按下“开始”按钮时设置running = true