簡體   English   中英

如何在Locale更改期間在Android Oreo中進行后台API調用?

[英]How to make background API calls in Android Oreo during Locale change?

我有一個場景,我需要在設備語言發生變化時通知服務器。 我需要調用一個API(即使應用程序沒有運行)並使用服務器更新當前語言。 我已經在BroadCastReceiver的幫助下實現了這一點

  <action android:name="android.intent.action.LOCALE_CHANGED" />

廣播觸發后,我即啟動服務並調用API。 但是,由於Android Oreo及以上版本具有后台執行限制,因此我必須啟動ForegroundService

此處,在后台API調用期間,通知面板中會顯示通知。 因此,用戶仍然可以轉到應用程序設置並強制停止應用程序,然后API調用將被中斷。 但我需要保證執行此API。 除了前台服務之外,有沒有辦法在后台執行它? 可以在WorkManager或Job Scheduler的幫助下完成嗎? 處理此用例的最佳方法是什么? 希望我的問題很明確。 提前致謝!

用戶總是可以殺死你的應用,所以這不應該是意料之外的。 但是如果你不喜歡前台服務,那么在數據庫中排隊這些信息(帶時間戳),並在你的應用程序運行時發送到你的API。 如果您必須立即發送,請將其排隊,然后立即發送。 如果用戶在操作中途殺死了您的應用,那么您仍然可以在下次從隊列中重新發送它。 WorkManager是一個不錯的選擇:

即使應用程序或設備重新啟動,也可以保證任務執行

暫無
暫無

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

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