RealmChangeListener wird nicht aufgerufen, wenn Realm in NotificationListenerService @ aktualisiert wir

Ich mache Realm-Einfügungen auf einem erweiterten NotificationListenerService, so was

public class NLService extends NotificationListenerService {

    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {

        // building realmObject here

        mRealm = Realm.getDefaultInstance();
        RealmHelper.saveObj(myRealmObject, mRealm);
    //  mRealm.waitForChange(); / mRealm.refresh();
        mRealm.close();
    }
}


public class RealmHelper {

    public static RealmModel saveObj(RealmObject realmObject, Realm realm) {
        realm.beginTransaction();
        RealmObject newRealmObject = realm.copyToRealm(realmObject);
        realm.commitTransaction();
        return newRealmObject;
    }
}

Using Realm neuer als v0.88.3, kein einzigesRealmChangeListener ( rcl) wird aufgerufen, wenn etwas in @ eingefügt wiNLService.

Ich habe versucht, rcls direkt an @ anzuhängeRealm, RealmResults undRealmObject, nichts funktioniert

Die App hat zum Beispiel einfache rcl's fürRealmResults<myRealmObject>.size() und mehrere RecyclerAdapter und das rcl insideRealmRecyclerViewAdapter wird nie aufgerufen.

Reunning-Abfragen funktionieren jedoch und die "fehlenden Daten" werden angezeigt. Auch wenn irgendetwas in ein ui- oder ein anderes Thread eingefügt wird, werden rcls aufgerufen und "fehlende Daten" werden angezeigt.

Ich bin monatelang auf Realm 0.88.3 geblieben, weil ich es nicht mit einer neueren Realm-Version zum Laufen bringen kann. Mit 0,88,3mRealm.refresh(); wurde in NLService aufgerufen, dies ist in neueren Versionen nicht verfügbar und.waitForChange blockiert endlos.

Manifest.xml:

<service
    android:name=".service.NLService"
    android:label="@string/nl_service"
    android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
    <intent-filter>
        <action android:name="android.service.notification.NotificationListenerService"/>
    </intent-filter>
</service>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage