我在扩展的NotificationListenerService上进行Realm插入,如下所示:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
使用领域比v0.88.3更新的,不是单一的RealmChangeListener(RCL如果有的话被插入)被调用NLService.
我试着将rcl直接附加到Realm,RealmResults并且RealmObject没有任何作用.
例如,应用程序具有简单的rcl RealmResults<myRealmObject>.size()和几个RecyclerAdapter,并且RealmRecyclerViewAdapter从不调用rcl内部.
然而,重新运行查询起作用并且显示"缺失数据".此外,如果在ui-或任何其他线程上插入了任何内容,则会调用rcl并显示"缺少数据".
我在Realm 0.88.3上呆了好几个月,因为我无法使用任何更新的Realm版本.在NLService mRealm.refresh();中调用了0.88.3,这在新版本中不可用并且.waitForChange无休止地阻塞.
的Manifest.xml: …
我正在尝试使用领域。我设置了 build.gradle 并在应用程序启动时调用了 Realm.init(context)。
问题是,应用程序在启动时崩溃。
这是日志:
java.lang.RuntimeException: Unable to create application com.test.android com.getkeepsafe.relinker.MissingLibraryException: lib/armeabi/librealm-jni.so
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5406)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: com.getkeepsafe.relinker.MissingLibraryException: lib/armeabi/librealm-jni.so
at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:85)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:70)
at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:57)
at io.realm.internal.RealmCore.loadLibrary(RealmCore.java:59)
at io.realm.Realm.init(Realm.java:187)
Run Code Online (Sandbox Code Playgroud)
该项目使用另一个仅支持armeabi. 这就是为什么我添加了 abiFilter
ndk { abiFilters "armeabi" }
在此处添加其他值将导致该库崩溃。
有没有办法只将 Realm 用于“armeabi”?