2010-08-03 80 views
0

我有一個由多個活動組成的應用程序。當應用程序啓動時,某些報警使用AlarmManager計劃和一些服務是否已啓動:Android:應用程序結束時停止服務和警報

AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
a.setInexactRepeating(...) 
.... 

我想知道什麼辦法保證每一個服務都停止,當用戶退出應用程序的每個報警不定期

問題是,用戶可以從不同的活動中離開應用程序,我不喜歡在每個活動中覆蓋onDestroy方法的想法。有什麼已知的Intent當應用程序結束時我可以收到嗎?

我還發現,Android應用程序可以有一個類,從Application延伸,一個onTerminate方法:

public class MyApplication extends Application { 
    @Override 
    public void onTerminate() { 
     ... 
    } 
} 

但文檔是很清楚的:「從不依賴於被調用此方法;在很多情況下,不需要執行任何應用程序代碼就會被內核殺死「

任何建議都非常感謝。

回答

2

我想知道什麼辦法 保證每一個服務都停止, 每一個報警不定期當 用戶退出應用程序。

Android中沒有「用戶退出應用程序」這樣的東西。

是否有任何已知的意圖我可以 當應用程序結束時收到?

我還發現一個Android應用程序 可以有一個類, 從應用程序擴展,具有 onTerminate方法

這將被調用,在很多情況下,在沒有更多運行組件的某個時候。在你的情況下,有運行的組件(服務)。

但是文檔是很清楚的: 「從來沒有靠這個方法是 調用;在很多情況下不需要的 應用程序將簡單地 內核打死不執行 任何應用程序代碼」

我知道什麼時候不會調用的唯一情況是,如果進程正在終止,在這種情況下,您的服務也將被淘汰,但預定的警報不會。

相關問題