Android ORMLite慢速创建对象

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文档.