2016-10-23 1 views
1

を誤解するオブジェクトのリストを削除しますデータ。Androidのレルムは、私は次のようなオブジェクトのリストを持っています

  RealmResults<A> aToEdit = realm.where(A.class).findAll(); 
      RealmList<D> dsToEdit = aToEdit.get(0).getDs(); 
      for (int i = dsToEdit.size()-1; i >= 0; i--) { 
       D d = dsToEdit.get(i); 
       RealmList<Z> z = d.getZ(); 
       z.deleteAllFromRealm(); 
      } 

  RealmResults<Z> resultToDelete = realm.where(Z.class).findAll(); 
      resultToDelete.deleteAllFromRealm(); 

  for (int x = 0 ; x < resultToDelete.size() ; x++){ 
       resultToDelete.get(x).deleteFromRealm(); 
      } 

  realm.delete(Z.class); 

しかし、私は再びgetZObjectsを呼び出すときに、残念ながらそれらの非はうまくいきました、それ:私は次のように使用しました更新されたオブジェクトを返します空でもnullでもない

私はここで何が欠けているのを見つけるのに役立ちますか?目標は、すべてのZをRealmデータベースから削除することです。

答えて

1

そのA既知の数とアプローチ上記カードの少量がうまくいく場合がありますが、カードの未知数この例では、あなた https://dzone.com/articles/be-lazy-productive-android-2

役立ちますその優れたリサイクルビューを使用する

希望を生成しようとしている場合

2

あなたのアプローチはすべてちょうどうまくいって、realm.delete(Z.class);が最も簡単な方法です。

は、それが私の知る限り動作しないことを二つの可能性があります。

  1. あなたがにブレークポイントを設定しようとすると、DB再びレルムにZを保存し、いくつかのコードに実行される場合があります

    チェック?

  2. getZObjects()をチェックしたコードがルーパースレッドにない場合、Realm dbは自動的に更新されません。非ルーパースレッドでレルムを閉じたり、開いたりしてみてください。ルーパースレッド上にある場合、dbは次の偶数ループで更新されます。

関連する問題