2016-03-04 43 views
0

我有一個在後臺運行的後臺服務來跟蹤屏幕的開啓和關閉事件。它的啓動如下:當android系統殺死我的應用程序時,如何保持我的後臺服務活動?

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

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

我該如何預防?

+0

您無法確保服務不會被殺死。您可以做的最好的事情是確保在可能的情況下重新啓動。 –

回答

0

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

0

我認爲使用BroadcastReceiver而不是服務是一個更好的解決方案。在你的onReceive中,你可以開始你的服務來完成它的工作,然後這個服務可以自行終止 - 也許你可以使用一個IntentService,如果你的工作是一次性的。

如果您仍然需要一個服務,您可以通過在通知欄中發出永久通知而使其不太可能被殺死,但從用戶的角度來看,這可能是不好的。我強烈建議去廣播接收機路線。

+0

這樣一個愚蠢的問題..解決方案非常簡單... START_STICKY完成了這項工作:D –

相關問題