3

我正在尝试限制 Android 上的 sqlite 数据库大小。这就是我试图实现它的方式,

  • 在 sqlite db 对象上调用 setMaximumSize()
  • 将 mDb.replaceOrThrow() 放在 try-catch 块中,以便在大小已满时抛出 SQLiteFullException。
  • 捕获 SQLiteFullException 并删除数据库中的所有记录。(因为我使用数据库进行缓存)

这是我观察到的,

  • 在几次成功插入后,我收到 SQLiteException,并显示错误消息“无法提交。没有事务处于活动状态”。db 的集合大小越高,失败前成功事务的数量就越多。
  • 当我将数据库的最大大小设置得太小而无法创建表时,我确实得到了 SQLiteFullException,因此当我使用创建表查询调用 execSQL() 时,它会抛出 SQLiteFullException。

我的问题是为什么我在插入/替换期间没有收到 SQLiteFullException ?什么是实现我正在尝试的正确方法?

4

0 回答 0