2017-07-29 18 views
1

私のAndroidアプリケーションでは、Room APIを使用してネットワークからのデータを永続化します。アプリケーションは複数のプロセスに分割され、そのうちの1つがデータの同期(SyncAdapterの実装)を担当します。 UIは別のプロセスで実行されており、DBにアクセスするための独自のDAOを使用しています。 私の問題は、SyncAdapterが新しいデータをDBに書き込むときに、UIプロセス上のLiveData Iクエリが更新を取得しないことです。 DBはプロセス間で共有されるため、DBを反映するLiveDataを持つすべてのプロセスでOnChangedを呼び出すことができます。つまり、すべてのプロセスがデータベースの変更を観察できることを意味します。複数のプロセスでLiveDataを更新する

+0

なぜあなたはその動作を期待しているのか分かりません。それを超えて、スタックオーバーフローはプログラミングに関する質問です。あなたの質問は何ですか? – CommonsWare

+0

質問:すべてのオブザーバーで観測しているデータをどのように更新すればよいですか? – ArikYa

答えて

0

独自のIPCメカニズムを実装する必要がありますプロセス間のイベント。これは、SQLiteを直接使用するか、またはほとんどの他のオブザーバフレームワーク(例えば、データバインディングオブザーバブル)を使用する場合と大きく異なるわけではありません。

また、1つのプロセスに切り替えることもできます。その場合は、既存の実装が正常に動作する可能性があります。

関連する問題