簡體   English   中英

當Android系統殺死我的應用程序時,如何保持后台服務處於活動狀態?

[英]how to keep my background service active when android system kills my app?

我有一個后台服務,該服務在后台運行以跟蹤屏幕打開和關閉事件。 其開始如下:

Intent intentService = new Intent(context, UnlockdService.class);
context.startService(intentService);

它在onStartCommand方法中返回Service.START_REDELIVER_INTENT 但是,當android系統殺死應用程序時,該線程也會死亡。

我該如何預防?

我認為使用BroadcastReceiver而不是Service是更好的解決方案。 然后,在onReceive中,您可以啟動服務以完成其工作,然后該服務可以自行終止-如果您的工作是一次性的,則可以使用IntentService。

如果仍然需要服務,則可以通過在通知欄中顯示永久通知來減少被殺死的可能性,但是從用戶的角度來看這可能很糟糕。 我強烈建議您使用廣播接收器路線。

解決方案非常簡單:從onStartCommand()返回START_STICKY onStartCommand()完成工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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