簡體   English   中英

我如何在最新的Android手機上運行后台工作(如鬧鍾)

[英]How can I run background work like alarm on latest android phones

我有一些任務,例如提醒葯物。 日常提醒計划存儲在SQLite數據庫中。 提醒每天都不同。

例如

19.02.19-08:00,12:00,19:00

22.02.19-08:30,12:30,19:30

...

最低android 4.4(Api 19)目標android 9.0(Api 28)

我閱讀了有關WorkManager,JobScheduler,JobIntentService,FirebaseJobDispathcer,警報管理器的信息。 有很多API可以做到這一點。

首先,我嘗試使用警報管理器每分鍾檢查一次時間。 但在最新的android系統中無法正常工作。 有背景限制,打ze模式和待機狀態。 然后,我嘗試了JobScheduler,但它在21 API下無法正常工作。 而且FirebaseJobDispatcher需要Google Play服務,這不是一個好主意。 最后,找到WorkManager。 但是在工作經理和工作計划者中,最小間隔為15分鍾。

如何進行后台服務,以每天的確切時間提醒用戶? 我沒有使用互聯網,GPS和位置信息。 僅從SQLite獲取時間並提醒准確時間。

在幾個月前,我還開發了葯物提醒應用程序。

我使用“使用android-job在0:00 AM運行日常工作 ”方法來實現此目的。

在DailyJob中,我們有此過程。

  1. 在數據庫中獲取一些時間信息
  2. 將(所需時間-現在時間)轉換為毫秒。 如果現在時間是00:15 AM並且期望時間是07:00 AM,那么它將是24300000ms。
  3. 在步驟2中以轉換后的毫秒數運行確切的作業。

在“確切的工作”中,我們向用戶顯示通知。

由於隱私原因,我無法附加代碼,但是您可以實現相同的目的。

暫無
暫無

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

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