如何在Android中优化realm.allobjects(class)

时间:2015-08-03 04:57:22

标签: realm

我想用Realm替换Android中的SqLite来存储类列表,我的代码非常简单,如下所示。

public class MyRealmObject extends RealmObject {

    public String getField() {
        return field;
    }
    public void setField(String field) {
        this.field = field;
    }

    private String field;
    ...
}


List<MyObject> myObjects = new ArrayList();

Realm realm = Realm.getInstance(this);
for(MyRealmObject realm : realm.allobjects(MyRealmObject.class)) {
  myObjects.add(new MyObject(realm));
}

realm.close();
return myObjects;

但是,它的性能实际上比我测试设备上的简单SqlLite表慢,我使用它的方式是错误的吗?有没有任何优化技巧?

1 个答案:

答案 0 :(得分:0)

为什么要将所有RealmObjects包裹在MyObject课程中?特别是复制整个结果集意味着您将失去使用Realm的好处,即除非需要,否则它不会复制数据。

RealmResults实现了List接口,因此您应该可以互换使用这两个接口。

List<MyRealmObject> myObjects;

Realm realm = Realm.getInstance(this);
myObjects = realm.allObjects(MyRealmObject.class();
return myObjects;