应用程序被终止或关闭时,Java android会终止服务

时间:2017-10-06 10:22:41

标签: java android android-studio android-activity service

我想在关闭(杀死)我的应用程序时终止我的服务:这是我的服务:

在这项服务中,我有一个asyntask,它会像这样重新开始工作:

   TimerTask myTimerTask = new TimerTask() {

                @Override
                public void run() {
                    connectTask3 = new connectTask3();
                    connectTask3.execute();
                }

            };
            Timer timer = new Timer();
            timer.schedule(myTimerTask, 2000);

当应用程序关闭时,如何在asyntask停止此服务?

3 个答案:

答案 0 :(得分:2)

如果要停止asynctask,可以使用asyncTask.cancel(true/false);

true指定Android系统即使已经启动也停止此服务,

false指定android系统如果已经启动则不停止此任务。

@Override
public void onDestroy() {
    super.onDestroy();

    timer.cancel();
    connectTask3.cancel(true);

}

如果您希望在活动失去其互动时停止此服务,请将其写入onPause()     要么     如果你想在活动时取消,请在onDestroy()

中调用它

有关详细信息,请check AsyncTask

答案 1 :(得分:1)

在清单中添加以下内容

<service android:name="service" android:stopWithTask="true"/>

当app关闭或被杀时,stopwithtask将停止服务

答案 2 :(得分:1)

@Override
public void onDestroy() {
    timer.cancel(true);   //stops timerTask
    connectTask3.cancel(); //stops asynctask
    super.onDestroy();
}