2017-10-06 133 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(); 
} 
相關問題