各RealmResultsデータをRESTエンドポイントに投稿し、送信が成功した場合はそのデータを削除したいと考えています。foreach RealmResultsとAndroidで削除
次のコードを実行すると、送信は成功しますが、削除に失敗します。
Response()
にtarget.deleteFromRealm()
を使用しようとしましたが、IllegalStateExceptionが発生しました。
java.lang.IllegalStateException: Realm access from incorrect thread.
Realm objects can only be accessed on the thread they were created.
target
を削除するにはどうすればよいですか? (レルムのJava 3.1.2を使用して2.2.0をレトロフィット)
RealmResults<Model> results = realm.where(Model.class).findAll();
for (final Model target: results){
Call<Void> task = restInterface.post(gson.toJson(target));
task.enqueue(new CallBack<Void>(){
@Override
public void onResponse(Call<Void> call, Response<Void> response) {
// ?? how to delete target from realm ??
}
@Override
public void onFailure(Call<Void> call, Throwable t) {
// do nothing
}
});
}
は、 "私はdeleteFromRealmを(使用しようとしました)が、失敗します。" 「失敗」を定義する。 – njzk2
レルムオブジェクトはコピーされないので、同じオブジェクトにアクセスしています。 statusと呼ばれる列のように正常に送信されたオブジェクトを同期して更新しようとしましたか。後で終了したら削除しますか? – Eenvincible