簡體   English   中英

如何檢測應用是否已被服務殺死? 安卓

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM