0
在我的应用程序中,我从服务器获取响应,并将从服务器响应中获取的值插入到数据库中。以下是我的代码:批量插入数据库阻塞UI?
String sql = "INSERT INTO "+ tableName +" VALUES (?,?,?,?);";
DatabaseHandler dbHandler = new DatabaseHandler(context);
final SQLiteDatabase db = dbHandler.getWritableDatabase();
final SQLiteStatement statement = db.compileStatement(sql);
db.beginTransaction();
try {
statement.clearBindings();
statement.bindString(2, id);
statement.bindString(3, type);
statement.bindString(4, value);
statement.executeInsert();
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
db.close();
它正在我的数据库中快速插入,但我的UI屏幕正在冻结。我试着在AsyncTask中调用我的插入代码,但插入需要很长时间。你能不能让我知道我该如何防止我的用户界面被阻止,并防止插入花费很长时间?
谢谢。
“我试着在AsyncTask中调用我的插入代码,但插入需要很长时间”应该不会超过它阻塞你的UI。 – Kiril 2014-09-30 13:42:51
这里只有1个插入。我怀疑这是非常漫长的。 – njzk2 2014-09-30 13:51:20
如果你每插入一个事务,当然会很慢。将'db.beginTransaction();'和其他东西移出内部循环和插入数据的循环。 – 2014-09-30 17:03:25