如何使用Handler停止服务

时间:2017-06-07 23:23:09

标签: java android

如何让Handler一起停止服务

服务:

int delay = 10000;
new Handler().postDelayed(new Runnable() {
    public void run(){
        //Do Something every 10 seconds
        new Handler().postDelayed(this, delay);
    }
}, delay);

...

public void onDestroy() {
    // TODO: Implement this method
    super.onDestroy();
    stopSelf();
}

在Activity中,我调用stopService,此Handler继续运行。

1 个答案:

答案 0 :(得分:1)

按以下方式修改处理程序:添加一个布尔标志,您将设置为' false'当你需要停止处理程序时。在runnable中,添加以下内容:

int delay = 10000;
static boolean running = true;
new Handler().postDelayed(new Runnable() {
    public void run(){
        if (running) {
            new Handler().postDelayed(this, delay);
        }
    }
}, delay);

public void onDestroy() {
    super.onDestroy();
    stopSelf();
    running = false;
}

根本不会重新开始。