【问题标题】:SQLite inserts timing out in Android?SQLite 在 Android 中插入超时?
【发布时间】:2011-05-11 03:27:08
【问题描述】:
在 onCreate() 期间,我尝试在 SQLite 数据库中插入大约 20 行(这些只是测试值。对于最终版本,我必须插入大约 1000 行)。
使用调试器时,似乎在运行 onCreate() 时会导致“HistoryRecord 的活动暂停超时”,并且从日志中似乎并非所有行都被插入。
使用异步任务是在没有超时的情况下完成这项工作的唯一方法吗?
谢谢
【问题讨论】:
标签:
android
sqlite
android-asynctask
oncreate
【解决方案1】:
是的,异步任务或在单独的线程中是正确的方式,此外,您可以告诉数据库您正在启动一个事务,这会显着加快大型插入的进程,
dh.getDb().beginTransaction();
//插入语句
dh.getDb().setTransactionSuccessful();
dh.getDb().endTransaction();
【解决方案2】:
如果它抛出 20 条记录的警告,想象一下延迟有 1000 条记录。你真的要阻止执行这么久吗?
将数据库作为异步任务或在单独的线程中更新是正确的方法。
【解决方案3】:
使用异步任务不是唯一的方法,但它是最好的方法。 AsyncTask 也很简单。您绝对不想在主线程中执行此操作。