在Android中获取所有领域对象

Ven*_*dor 2 android realm

有没有一种方法可以获取Realm中所有现有的对象。

大约有1000个对象(表),每个对象有10000多个项目。每1小时就会有一些物品过期。

// Class[] clazzez = realm.getSchema();

Class[] clazzez = new Class[] { // How to get all classes dynamically?
    Demo.class, AnotherDemo.class, SomeOtherDemo.class
};


// To delete expired items
for(Class clazz: clazzez) {
    realm.where(clazz)
            .greaterThan("maxAge", new Date().getTime())
            .findAll()
            .deleteAllFromRealm();
}
Run Code Online (Sandbox Code Playgroud)

跟踪所有课程非常困难。如何动态获取所有类?

Epi*_*rce 5

使用realmConfiguration.getRealmObjectClasses();(0.88.0+)。

RealmConfiguration realmConfiguration = new RealmConfiguration.Builder()...build();
// ...
Set<Class<? extends RealmModel>> schemaClasses = realmConfiguration.getRealmObjectClasses(); // <---

// To delete expired items
for(Class clazz: schemaClasses) {
    realm.where(clazz)
            .greaterThan("maxAge", new Date().getTime()) // <-- assumes existence of "maxAge" field
            .findAll()
            .deleteAllFromRealm();
}
Run Code Online (Sandbox Code Playgroud)