应用程序运行时无法停止处理程序和服务

时间:2014-05-07 16:26:31

标签: android

我有一个应用程序在后台启动服务。我希望它在进程后停止在此服务上运行的处理程序。如果按下后退按钮,它会正确运行。但是,如果我没有按回按钮,如果应用程序仍在运行,则服务不会停止。我的方法如下:

首先,此方法在服务调用时运行:

public void startChecking() {
    handler = new Handler();
    runnable = new Runnable() {
        @Override
        public void run() {
            wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
            wifiInfo = wifiManager.getConnectionInfo();
            Log.d("ssid", "Checking...");
            checkWifi(wifiInfo.getSSID());
            handler.postDelayed(this, CHECK_TIME * 1000);
        }
    };
    handler.postDelayed(runnable, CHECK_TIME * 1000);
}

checkWifi 方法:

public void checkWifi(String ssid) {
    if (ssid.equals("\"" + SSID + "\"")) {
        Log.d("ssid", "SMS sending...");
        sendSMS();
        stopEverything();
    }
}

最后一个。 stopEverything 方法:

public void stopEverything() {
    handler.removeCallbacks(runnable);
    stopSelf();
    stopService(new Intent(this, WifiService.class));
    onDestroy();
}

所有这些方法都在服务中。我从我的主班叫这个服务。如何正确停止计时器和服务?

1 个答案:

答案 0 :(得分:0)

我通过考虑@ njzk2的评论解决了我的问题。谢谢。