簡體   English   中英

保持Android服務長時間運行

[英]keeping an android service running for a long time

即使手機被鎖定,我也想長時間運行 android 服務。 我嘗試過工作意向服務和工作經理,但它長時間不起作用。 該服務應該定期調用服務器 API。 工作經理的最小間隔是 15 分鍾,但我想每分鍾調用一次這個 api 有什么辦法嗎?

您可以使用的最佳選擇是 Workmanager,它是 Jetpack 的一部分,因為它在后台根據 api 級別運行 Jobscheduler 或 Alaram 管理器。通知用戶,但在我的情況下,它仍然在設備鎖定或處於睡眠模式時停止。所以我在這種情況下 WAKE_LOCK 為我工作以喚醒設備。所以我你可以看看它是否適合你的解決方案也確保如果你使用喚醒鎖,那么一旦你完成,不要忘記釋放喚醒鎖。

1) 添加服務。START_STICKY

如果服務終止,則重新啟動服務。 在保持狀態並從低內存中恢復后,當可用內存足夠時,它會告訴系統創建服務的最新副本。

2) 添加 android:persistent="true"

<service android:name="com.myapplication.MyService" android:persistent="true"></service>

雖然,您可以使用WorkManager進行持久性工作

從版本 2.3.0 開始,工作管理器支持具有前台通知支持的長時間運行的操作。

https://developer.android.com/topic/libraries/architecture/workmanager/advanced/long-running

只要您可以將工作人員的 api 放在前台,用戶就會看到通知,在此期間您的工作人員可以繼續在后台工作。

暫無
暫無

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

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