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>