4 votes

Android Realm ChangeListener ne se déclenche pas

J'ai un auditeur de changement de résultats de royaume qui n'est pas déclenché, voici le code :

final RealmResults<LogEntry> entries = realm.where(LogEntry.class).findAll();

entries.addChangeListener(new RealmChangeListener<RealmResults<LogEntry>>() {
            @Override
            public void onChange(RealmResults<LogEntry> results) {
                Log.v("Testing", "The size is: " + results.size());
            }
        });

Il y a bien de nouveaux éléments qui sont ajoutés, j'ai un journal sur l'insertion du domaine qui imprime la nouvelle taille de la table, mais pour une raison ou une autre, l'auditeur de changement ne fait rien ? Est-ce que j'ai raté quelque chose ici, cela semble identique à la documentation.

19voto

ChristianMelchior Points 494

Vous devez conserver une référence de classe à entries afin d'éviter qu'il ne soit GC'ed :

public MyClass {

  private RealmResults<LogEntry> entries;

  public void myMethod() {

    entries = realm.where(LogEntry.class).findAll();
    entries.addChangeListener(new RealmChangeListener<RealmResults<LogEntry>>() {
            @Override
            public void onChange(RealmResults<LogEntry> results) {
                Log.v("Testing", "The size is: " + results.size());
            }
        });
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X