2017-07-21 45 views
0

有很多文章寫在我指定的主題上。但是,所有這些似乎都不起作用。至少在我的情況下。即使在用戶手動關閉應用程序後,我也只是想一直運行我的服務。我不想要前臺服務,因爲它在狀態欄中顯示一些通知圖標。我想要定期服務來完成我的要求。或者請建議是否有其他可用的替代方案來實現這一點。我嘗試使用return START_STICKY作爲onStartCommand回撥的返回值。我也嘗試過使用廣播接收器,但無論如何也無濟於事。請幫助我。即使在應用程序關閉/殺死後,如何讓服務在後臺運行?

+0

有沒有選擇在後臺甚至殺害力運行後您服務! –

回答

1

您可以在服務類的onTaskRemoved()方法中創建5分鐘的警報。它將在5分鐘後自動調用並重新啓動服務。

在服務類

public void onTaskRemoved(Intent rootIntent) { 
    Intent restartService = new Intent(getApplicationContext(), YourService.class); 
    restartService.setPackage(Yourpackagename); 
    PendingIntent restartServiceIntent = PendingIntent.getService(getApplicationContext(), 1, restartService, PendingIntent.FLAG_ONE_SHOT); 
    AlarmManager alarmService = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE); 
    alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealTime()+1000, restartServiceIntent); 
} 
+0

你可以使用報警管理器的setExactAlarm()方法。一旦它被執行,這將清除警報。 –

0

您可以通過實現在Android中AlarmManger概念實現這一功能。一旦你想到實現這個後臺服務,請看下面的URL。

提示:在實施之前,您應該確定這一點。因爲它會消耗很多電量。

好運

http://stacktips.com/tutorials/android/repeat-alarm-example-in-android

https://developer.android.com/reference/android/app/AlarmManager.html

+0

感謝您的回覆。如果應用程序已卸載,我希望服務停止。但是,android中的鬧鐘不會停止,直到手機啓動。是不是? – user3782869

相關問題