我正在開發一些需要通過 UI 更新在后臺運行的功能,例如從輸入流創建檔案并在完成后通知用戶
嘗試作業經理完成此任務后。它運作良好,但在您看來這是一個不錯的選擇嗎?
注意:我對在此程序中更新用戶界面非常感興趣,如您所知,不推薦使用異步任務
uj5u.com熱心網友回復:
是的。最初,WorkManager是一個用于管理可延遲后臺作業的庫。然而,現在WorkManager 是任何持久性作業的推薦解決方案,即必須完成的作業 - 無論應用程式行程是否停止,甚至設備是否重新啟動。從版本開始2.3.0-alpha01,為工人設定和觀察中間進度WorkManager提供一流的支持。更新用戶界面正是此功能的用途。
對我來說,了解 WorkManager 的最簡單方法是擴展您的應用范圍:
Activity范圍 - 作品持續到onDestroy生命周期事件ViewModel范圍 - 作品的生命周期與 ViewModel 一樣長。如果您離開 - 作業停止Application范圍(例如 Coroutine 的GlobalScope) - 作業與應用程式程序一樣長。如果用戶在任務管理器中結束應用行程或系統將其殺死 - 作業將丟失WorkManager- 作業在行程死亡和設備重啟后仍然存在。它在后臺的 Room DB 的幫助下持久化,以便您可以在重新啟動應用程式行程后繼續作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/400707.html
標籤:安卓 科特林 android-asynctask android-workmanager
上一篇:AndroidStudio應用程式模塊中的重復類androidx.lifecycle.DefaultLifecycleObserver(Java)
