gpt4 book ai didi

Android ORMLite 缓慢创建对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:13 27 4
gpt4 key购买 nike

我正在使用 ormLite 在设备上存储数据。我不明白为什么,但是当我存储大约 100 个对象时,其中一些存储的时间太长,最多一秒。这是代码

来自数据库管理器:

public class DatabaseManager 
public void addSomeObject(SomeObject object) {
try {
getHelper().getSomeObjectDao().create(object);
} catch (SQLException e) {
e.printStackTrace();
}
}
}

public class DatabaseHelper extends OrmLiteSqliteOpenHelper

public Dao<SomeObject, Integer> getSomeObjectDao() {
if (null == someObjectDao) {
try {
someObjectDao = getDao(SomeObject.class);
} catch (Exception e) {
e.printStackTrace();
}
}
return someObjectDao;
}

有什么办法可以避免这种情况?

最佳答案

感谢格雷!如 Gray 所述,解决方案是使用 callBatchTasks 方法:

public void updateListOfObjects (final List <Object> list) {
try {
getHelper().getObjectDao().callBatchTasks(new Callable<Object> (){
@Override
public Object call() throws Exception {
for (Object obj : list){
getHelper().getObjectDao().createOrUpdate(obj);
}
return null;
}

});
} catch (Exception e) {
Log.d(TAG, "updateListOfObjects. Exception " + e.toString());
}
}

使用这种方式,我的对象(两种类型的对象,第一种类型 - 大约 100 项,第二种类型 - 大约 150 项)在 1.7 秒内存储。

参见 ORMLite documentation .

关于Android ORMLite 缓慢创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16749209/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com