android和sqlite:有时插入持续时间超过900毫秒

时间:2012-03-06 13:19:19

标签: android performance sqlite

我正在使用记录良好的代码在我的sqlite数据库中插入数据

ContentValues cv = new ContentValues();
cv.put("timestamp", timestamp);
cv.put (..., ...);

db.insert("datatable", "id", cv);

这通常持续约50毫秒,但是在一些插入物后,它持续超过900毫秒,并回到50毫秒。因为db插入是在主线程中完成的,所以长插入(超过900ms)会阻止我的UI。

有人有想法避免这么长的插入吗?

2 个答案:

答案 0 :(得分:3)

在主线程上执行此操作是一个坏主意,但要回答具体问题:

  

有人有想法避免这么长的插入吗?

如果您一次进行多次插入,请确保将它们全部包装在事务中。这会对性能产生巨大影响。

答案 1 :(得分:1)

您不应该在主UI线程上执行这些操作。产生新线程或使用AsyncTask