2017-05-25 12 views
0

これは一般的な質問なので、このコードはありません。 Androidで、を介してRealmListに、まだRealmによって管理されているRealmObjectサブクラスインスタンスを追加することは可能ですか?既存のRealmObjectをRealmListに非同期で追加する

例:クラスAはRealmObjectサブクラスです。メインスレッドでは、RealmからAのインスタンスを取得し、それをRealmによって管理される別のRealmListに追加する必要があります。私は、同じメインスレッドによって開始された非同期トランザクションでそうしたいと思います。

IllegalStateException「別のレルムインスタンスからオブジェクトをコピーできません」というメッセージが表示されています。これは期待されていますか?

答えて

1

非同期トランザクションは、バックグラウンドスレッドで実行され、スレッド間で管理対象のRealm、RealmResultsおよびRealmObjectを渡すことはできません。あなたは主キーを渡すことができます。

MyClass myClass = realm.where(MyClass.class).findFirst(); 
final long id = myClass.getId(); 
realm.executeTransactionAsync((bgRealm) -> { 
    MyClass bgClass = bgRealm.where(MyClass.class).equalTo("id", id).findFirst(); 
    B b = bgRealm.where(B.class).equalTo("id", bId).findFirst(); 
    b.getList().add(bgClass); 
}); 

thread-safe referenceが追加されたときにこれはおそらくビットが変更されますが、それはまだ利用できません。

関連する問題