2017-07-20 7 views
0

AndroidプロジェクトにRealm DBを使用していますが、問題があります。アプリケーションレベルで私のレルムのデフォルトインスタンスを作成し、そのデフォルトインスタンスを別々に2つのスレッドに使用します。ですから、最初のスレッドのデフォルトインスタンスにオブジェクトを作成すると、それを2番目のスレッドの領域にどのようにコピーするのでしょうか?最初のスレッドはMainActivityで、2番目のスレッドはWidgetServiceですか?
realm.refresh()を試しましたが、動作しませんでした。レルムDB。 2つの別々のデフォルトインスタンスを更新しますか? * FLOWCHART *

相続人は、私はそれを理解フローチャート: enter image description here

+1

'realm.refresh()'が動作するはずです。 –

答えて

1

Realm docsによると、あなたは、バックグラウンドスレッドでのレルムにwaitForChange()を呼び出す必要があります:

あなたはレルムのインスタンスを取得する場合Looperが接続されていないスレッドからは、waitForChange()メソッドが呼び出されない限り、そのようなインスタンスのオブジェクトは更新されません。

+0

こんにちは、あなたの返信に感謝します!両方のスレッド(メイン/ UIスレッドとサービススレッド)には、ルーパーが接続されているようです。バックグラウンドスレッドはどういう意味ですか? Btwいくつかの追加情報:サービススレッドは 'appWidgetProvider'(BroadCastReciever、メインスレッド上で実行)によって開始された' RemoteViewsService'クラスです。 –

関連する問題