こんにちは、私はアンドロイドアプリケーションでサービスを実行しています。 そのサービスではTimerTask
があります。メインのUIスレッドに保存されているデータと、5秒ごとに実行されているTimerTask
のデータを同期させる際に問題があります。Realm out on sync(TimerTaskとUI Thread)
例
UIスレッド - 100のレコード
TimerTaskをスレッド - 0レコード
TimeTask
は私が更新されたインスタンスを取得しようとしているスレッドにレルムインスタンスを閉じる行うたびに次の実行時に。
閉じるオプションが中間からキャッシュからインスタンスを削除しないように見えるため、次回にはRealm.getInstance()
と同じように提供されます。
TimerTask
を実行しているときに、同じデータを持つスレッドを両方とも持つ方法に関する考え方はありますか?
レルムを呼び出すことができます結果のコピーを作成せずにchangeListenerを追加し、LIVEデータを操作する限り、複数のスレッド間でデータをchronisedします。両方のスレッドが同じRealmデータベースファイルを使用している限り、Realmを再度閉じて開く必要はありません。詳細については、より多くのコードを共有してください。 –
@VirajTank私はTimerTaskが非ルーパの背景スレッドスレッドだと思うので、自動同期しません。 – EpicPandaForce
@EpicPandaForce - ああ、本当にその部分を見逃しましたが、それでも新しいクエリーではうまくいくはずです。 –