簡體   English   中英

在多個進程中獲取 LiveData 更新

[英]Getting LiveData updates in multiple processes

在我的 Android 應用程序中,我使用 Room API 來保存來自網絡的數據。 該應用程序分為多個進程,其中一個進程負責同步數據(實現 SyncAdapter)。 UI 在不同的進程上運行,它有自己的 DAO 來訪問數據庫。 我的問題是,當 SyncAdapter 將新數據寫入數據庫時,我在 UI 進程中查詢的 LiveData 沒有得到任何更新。 因為數據庫在進程之間共享,所以我希望在所有具有反映數據庫的 LiveData 的進程上調用 OnChanged,這意味着所有進程都可以觀察數據庫更改

room 2.1.0 中引入的 enableMultiInstanceInvalidation 可能對你有幫助官方文檔

您將需要實現自己的 IPC 機制以將事件從一個進程傳遞到另一個進程。 這與直接使用 SQLite 或使用大多數其他觀察器框架(例如,數據綁定可觀察對象)沒有明顯不同。

或者,切換到單一進程,在這種情況下,您現有的實現可能會工作得很好。

暫無
暫無

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

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