Ale*_*ndr 4 performance android ormlite
我使用ormLite在设备上存储数据.我无法理解为什么但是当我存储大约100个对象时,其中一些存储时间太长,直到第二个.这是代码
来自DatabaseManager:
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;
}
Run Code Online (Sandbox Code Playgroud)
有什么想法可以避免这种情况?
Ale*_*ndr 11
谢谢格雷!解决方案是,如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());
}
}
Run Code Online (Sandbox Code Playgroud)
使用这种方式,我的对象(两种类型的对象,第一种 - 约100种,第二种 - 约150种)在1.7秒内存储.
请参阅ORMLite文档.
| 归档时间: |
|
| 查看次数: |
2137 次 |
| 最近记录: |