[英]How to detect if the app has been killed using a service? android
如何檢測該應用是否已被殺死? 我找到了一個解決方案,它是onDestroy上的呼叫活動
@Override
protected void onDestroy() {
super.onDestroy();
Intent intent = new Intent(this, ConnectionStablizer.class);
startActivity(intent);
// code here
}
它在銀河筆記3(4.4.2)上工作正常,但在android模擬器(android 4.2.2),銀河y duos(2.3.6)和htc欲望(4.0.2)上無法正常工作
所以我找到了另一種解決方案-
運行后台服務,以檢測應用何時被破壞,並像這樣再次啟動活動
我有確切的實現,但是它什么都不做? 我哪里錯了? 我的代碼與鏈接中的相同
我在哪里錯
銷毀應用程序后重新嘗試打開它是錯誤的 。 這是駭客行為...
不過,您可以通過使用警報管理器來實現您的目標,並每隔一秒鍾左右設置一個警報,以檢查您的應用是否正常運行(如果不是),您可以將其恢復。
另外,請注意:
從API 19(KITKAT)開始,警報傳遞是不准確的:操作系統將轉移警報,以最大程度地減少喚醒和電池消耗。 有一些新的API支持需要嚴格交付保證的應用程序。 請參見setWindow(int,long,long,PendingIntent)和setExact(int,long,PendingIntent)。 targetSdkVersion早於API 19的應用程序將繼續看到以前的行為,在該行為中,所有警報均在請求時准確傳遞。
如果用戶已將應用程序從最近的應用程序中刪除,則您可以通過覆蓋服務中的onTaskRemoved
方法從OS收到通知,並采取相應的措施。 通常,除非內存不足,否則Android絕不會殺死任何應用程序。 在這種情況下,將提供回調以保存應用程序的狀態,前提是您處理所有此類回調。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.