我有一些任務,比如藥物提醒。日常提醒計劃存儲在 SQLite 數據庫中。提醒每天都不同。例如21.02.19 - 08:00, 12:00, 19:0022.02.19 - 08:30, 12:30, 19:30...最低安卓 4.4 (Api 19) 目標安卓 9.0 (Api 28)我讀到了 WorkManager、JobScheduler、JobIntentService、FirebaseJobDispathcer、Alarm manager。有很多 API 可以做到這一點。首先,我嘗試使用警報管理器每分鐘檢查一次時間間隔。但它在最新的 android 中無法正常工作。有后臺限制,打盹模式和待機。然后我嘗試了 JobScheduler,但它不適用于 21 API 下的設備。而 FirebaseJobDispatcher 需要 google play 服務,這不是一個好主意。最后,我找到了 WorkManager。但是在 workmanager 和 jobscheduler 中的最小間隔為 15 分鐘。如何讓后臺服務每天在特定的準確時間提醒用戶?我沒有使用互聯網、GPS、位置。僅從 SQLite 獲取時間并及時提醒。
1 回答

GCT1015
TA貢獻1827條經驗 獲得超4個贊
幾個月前,我也開發了藥物提醒應用程序。
我使用“使用android-job在凌晨 0:00 運行日常工作”方法來實現這一點。
在 DailyJob 中,我們有這個過程。
在 DB 中獲取一些時間信息
將(期望時間 - 現在時間)轉換為毫秒。如果現在時間是 00:15AM,而期望時間是 07:00AM,那么它將是 24300000ms。
在步驟 2 中以轉換后的毫秒數運行精確作業。
在 Exact job 中,我們向用戶顯示通知。
由于隱私,我無法附加代碼,但您可以實現相同的目標。
添加回答
舉報
0/150
提交
取消