在 onCreate() 期间,我尝试在 SQLite 数据库中插入大约 20 行(这些只是测试值。对于最终版本,我必须插入大约 1000 行)。
使用调试器时,似乎在运行 onCreate() 时会导致“HistoryRecord 的活动暂停超时”,并且从日志看来,并非所有行都被插入。
使用异步任务是在没有超时的情况下完成这项工作的唯一方法吗?
谢谢
在 onCreate() 期间,我尝试在 SQLite 数据库中插入大约 20 行(这些只是测试值。对于最终版本,我必须插入大约 1000 行)。
使用调试器时,似乎在运行 onCreate() 时会导致“HistoryRecord 的活动暂停超时”,并且从日志看来,并非所有行都被插入。
使用异步任务是在没有超时的情况下完成这项工作的唯一方法吗?
谢谢
是的,异步任务或在单独的线程中是正确的方式,此外,您可以告诉数据库您正在启动一个事务,这大大加快了大型插入的过程,
dh.getDb().beginTransaction();
//插入语句
dh.getDb().setTransactionSuccessful();
dh.getDb().endTransaction();
如果它以 20 条记录抛出该警告,想象一下有一千条记录的延迟。你真的想阻止执行这么长时间吗?
将数据库作为异步任务或在单独的线程中更新是正确的方法。
使用异步任务不是唯一的方法,但它是最好的方法。AsyncTask 也很简单。您绝对不想在主线程中执行此操作。