Android - 检查Runnable是否正在运行

beL*_*jer 5 java eclipse service multithreading android

我想在我的服务中检查Runnable是否存在.有没有办法可以做到这一点?

private Runnable sendData = new Runnable() {
    public void run() {
        try {
            superToast.show();
            screenOn();
            vibrate();
            mHandler.postDelayed(sendData, time);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

Waq*_*med 12

你可以创建一个布尔变量并检查它的值是否正在运行

boolean isRunning = false;

private Runnable sendData = new Runnable() {
    public void run() {
        try {
            isRunning = true;
            superToast.show();
            screenOn();
            vibrate();
            mHandler.postDelayed(sendData, time);
        } catch (Exception e) {
            e.printStackTrace();
            isRunning = false;
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

现在检查isRunning,如果它是true它正在运行否则不运行

  • 如果有人使用它在另一个线程上运行某些东西,请将布尔值标记为volatile (4认同)