2017-10-06 100 views
-2

我想杀死我的服务当我关闭(杀死)我的应用程序:这是我的服务:Java的机器人杀死服务时,应用程序被杀害或接近

在这项服务,我有一个asyntask,这将启动再次像这样工作:

TimerTask myTimerTask = new TimerTask() { 

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

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

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

回答

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

+0

虽然OP已经在这个问题写服务,但他未使用的服务,但的AsyncTask实际的问题是不相关的服务,但计时器任务 –

+0

将停止服务和计时器任务。 –

+0

检查我的更新回答@ VivekMishra –

1

添加在您的清单

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

stopwithtask当应用程序被关闭或被杀害

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