Ion*_*ers 7 sql android insert android-contentprovider
我创建了自己的内容提供者,我将多个插入的数据同时放入大量数据中.
该应用程序将从外部源接收数据,此时我收到大约30个项目(因此插入30次).
现在我注意到这需要花费很多宝贵的时间(大约3秒,每次插入100毫秒).
如何提高contentprovider的速度?我已经尝试将它们全部拼接在一起,但它们最多需要5秒钟.
提前致谢.
dav*_*ino 21
将所有内容包装insertBulk到事务中.
例:
SQLiteDatabase sqlDB = mDB.getWritableDatabase();
sqlDB.beginTransaction();
try {
for (ContentValues cv : values) {
long newID = sqlDB.insertOrThrow(table, null, cv);
if (newID <= 0) {
throw new SQLException("Failed to insert row into " + uri);
}
}
sqlDB.setTransactionSuccessful();
getContext().getContentResolver().notifyChange(uri, null);
numInserted = values.length;
} finally {
sqlDB.endTransaction();
}
Run Code Online (Sandbox Code Playgroud)
bulkInsert默认情况下不使用事务,因为默认行为只调用insert:
重写此方法以处理插入一组新行的请求,或者默认实现将迭代值并在每个值上调用insert(Uri,ContentValues).
| 归档时间: |
|
| 查看次数: |
3307 次 |
| 最近记录: |