草庐IT

android - 如何删除 Realm 对象及其子关系?

我有一个大对象,它与其他对象有很多关系,这些对象也与其他对象有关系。所以当我删除根对象时,我发现只有父对象被删除,而它的所有关系都没有,有没有办法在同一个事务中删除整棵树? 最佳答案 Realm目前不支持级联删除。您可以为该功能投票there.在当前情况下,您似乎需要一个接一个地手动完成。realm.executeTransaction(newRealm.Transaction(){@Overridepublicvoidexecute(Realmrealm){RootObjroot=realm.where(RootObj.class

android - 在 NotificationListenerService 中更新 Realm 时,不会调用 RealmChangeListener

我正在扩展NotificationListenerService上进行Realm插入,像这样:publicclassNLServiceextendsNotificationListenerService{@OverridepublicvoidonNotificationPosted(StatusBarNotificationsbn){//buildingrealmObjectheremRealm=Realm.getDefaultInstance();RealmHelper.saveObj(myRealmObject,mRealm);//mRealm.waitForChange();/m

java - Android Realm 大文件大小

我是android编程的新手。我为我的简单成绩跟踪器实现了Realm,但是,文件大小从1.5mb增加到5mb。那是正常的吗?我所做的只是使用oncreate在每个类上添加一个realm实例,只要Activity有可能结束就在realm.close()中添加。还围绕每个对象创建包装了开始和提交事务。是不是我做错了什么导致文件变大了?谢谢!编辑:我的意思是apk大小 最佳答案 @geisshirt是对的。Realm引入了方法publicstaticbooleancompactRealm(RealmConfigurationconfigu

java - 将 Realm 与 Gson 一起使用

我有json字段_idStringjson="{_id:1,name:'Alex',role:'admin'}"在我的Realm模型中,我使用@SerializedName属性:publicclassUserextendsRealmObject{@SerializedName("_id")@PrimaryKeyprivateintid;privateStringname;privateStringcomment;publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){retu

java - Android Realm,通过子属性查询对象

我正在使用Realm-Java对于Android应用程序。我需要查询MyObject的列表,在MyObject.SubObject_A.ListOfString中搜索包含字符串的那些.因为Realm不支持String的列表,我现在使用的是这种结构:-MyObject----SubObject_A--------Attribute_A--------Attribute_B--------RealmList----SubObject_B----OtherStuff与RealmString存在publicclassRealmStringextendsRealmObject{publicsta

android - Retrofit + RealmList + Gson 陷入循环直到内存不足

我正在尝试使用Retrofit+Realm+Gson,但是当使用RealmList时,应用程序卡住了。如果我删除RealmList对象一切正常,但我需要对象列表。日志:(32099):BackgroundstickyconcurrentmarksweepGCfreed278516(15MB)AllocSpaceobjects,0(0B)LOSobjects,25%free,23MB/31MB,paused2.533mstotal1.049s(32099):BackgroundpartialconcurrentmarksweepGCfreed137132(8MB)AllocSpaceob

android - 如何正确使用Realm

我试图避免在我的android应用程序中为每个fragment创建和管理Realm对象。我认为ThreadLocalVariable可能是一个好的开始。publicclassRealmInstanceGeneratorextendsThreadLocal{publicRealmgetRealmForMyThread(Contextcontext){if(get()==null&&context!=null)super.set(Realm.getInstance(context));returnget();}publicvoidsetRealmForCurrentThread(Conte

java - 使用 rxjava 和 dagger2 跨线程访问 Realm

我已经阅读了很多关于这个主题的帖子,但对我来说还是有点不清楚。我知道您无法跨不同线程访问Realm类或Realm对象,所以我想知道处理该问题的最佳方法是什么。我有一个启动线程的服务。该线程执行后台工作(包括通过Schedulers.io上的rxjava工作)。现在在某个时候我想将一些数据保存到位于DataManager类中的Realm。最初我使用Dagger2将Realm注入(inject)到我的DataManager类中(它本身被注入(inject)到服务中)。然而,这是行不通的,因为注入(inject)是在主线程上完成的,所以Realm.getDefaultInstance()绑定

Android:Realm.getInstance(context) 返回一个已经关闭的 Realm 实例

Realm.getInstance(context)很少会返回一个已经关闭的Realm实例。这怎么可能?根据https://realm.io/news/using-realm-with-rxjava/,我将Realm与RxJava结合使用特别是,此方法抛出一个IllegalStateException:ThisRealminstancehasalreadybeenclosed,makingitunusable.@Overridepublicvoidcall(finalSubscriber>subscriber){finalRealmrealm=Realm.getInstance(con

android - 使用 Realm 获取致命信号 11 (SIGSEGV),代码 1

这个错误似乎是由native代码中的错误引起的,这是由于Realm引起的图书馆——基于看到短语librealm-jni.so在错误下方的“BuildFingerprint”中。我有最新版本的Realm已安装--1.2.0。错误代码如下:Fatalsignal11(SIGSEGV),code1,faultaddr0x14cintid7837(ator.app)这是“构建指纹:”Buildfingerprint:'generic/vbox86p/vbox86p:5.0/LRX21M/buildbot11172321:userdebug/test-keys'26643-26643/?I/DE