【问题标题】: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 也很简单。您绝对不想在主线程中执行此操作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-12-03
          • 1970-01-01
          • 2011-09-09
          • 2016-05-27
          • 1970-01-01
          相关资源
          最近更新 更多