1

我已经在我的代码中实现了一个可运行对象,我必须通过按下我的应用程序中的一个按钮来启动它,并通过按下另一个按钮来停止它。

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

我的代码:

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;
    }
}
4

2 回答 2

4

不要使用running标志来表示您要停止它。

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

/to stop the runnable:
v.removeCallbacks(r);
于 2013-05-09T14:42:07.807 回答
3
if(running = true) 

应该

if(running == true) 

此外,您需要running = true在按下开始按钮时进行设置。

于 2013-05-09T14:38:47.957 回答