2017-12-26 7 views
0

I hatte 2 Fragment A und B, in Fragmente B I ein Objekt löschen über die Transaktion dann execut I getActivity().getSupportFragmentManager().popBackStack(); an das Fragment zurück A, nachdem das Objekt I debug Löschen und ich fand, dass das Objekt korrekt gelöscht, aber wenn ich zu Fragment zurückkehren A ich es gefunden, es ist seltsam!Realm behält ein gelöschte Objekt

dies ist mein Code in meinem Fragment A

realm.executeTransactionAsync(new Realm.Transaction() { 
            @Override 
            public void execute(@NonNull Realm realm) { 
             Infraction infraction = realm.where(Infraction.class).equalTo("id",id_new_inf).findFirst(); 
             if(infraction != null) 
              infraction.deleteFromRealm(); 
            } 
          }); 
    getActivity().getSupportFragmentManager().popBackStack(); 

Warum wird das Objekt nicht gelöscht?

in Fragment A, ich habe nicht etwas Besonderes, es ist nur eine Anfrage in onCreateView

@Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

     final View v = inflater.inflate(R.layout.list_infractions, container, false); 
infractions = realm.where(Infraction.class).findAll(); 
} 
+1

auch den Code-Fragment A. Post tun, weil es hängt auch von wie manipulieren Sie Daten in Fragment A –

+0

Werden Elemente in Fragment A neu geladen? –

+1

bitte lesen https://realm.io/docs/java/latest/#notifications und https://academy.realm.io/posts/threading-deep-dive/ – beeender

Antwort

0

realm.executeTransactionAsync((r) -> 
        Infraction infraction = r.where(Infraction.class).equalTo("id",id_new_inf).findFirst(); 
        if(infraction != null) 
          infraction.deleteFromRealm(); 
        } 
      },() -> { // on Success 
        getActivity().getSupportFragmentManager() 
           .popBackStack(); 
      }); 
Verwandte Themen