为我的应用指定max sqlite db size。 如何处理db完全exception

我在接受采访时被问到如何为我们的Android应用程序设置sqlite db的最大大小。 我们如何处理最大尺寸?

编辑 :Marina Lynn的回答似乎可以接受这个问题。 但是当db大小达到我们指定的极限附近时,是否会触发某种侦听器? (或类似的东西)

  • Android ExpandableListView和SQLite数据库
  • Sqlite数据库安全
  • Android排序sqlite查询结果忽略大小写
  • Android:使用AUTOINCREMENT列插入sqlite记录
  • 困惑于SQLiteOpenHelper和创build多个表
  • Android本地SQLite与Firebase同步
  • 从Android Studio浏览SQLite数据库
  • Android中的SQLiteDatabase.CursorFactory有什么用?
  • 首先,要设置最大数据库大小,请使用上一个答案中提到的.setMaximumSize()

    其次,如果数据库文件增长大于最大页数*页面大小,则Android会抛出SQLiteFullExceptionSQLiteFullException是一个RuntimeException 。 如果您想处理它并发送相关回复,您将执行以下操作:

     try { getContentResolver().update(myEntity.CONTENT_URI, values, where, null); } catch (SQLiteFullException e) { Log.w(TAG, "Exception when updating ...", e); } 

    虽然除可用存储外,对数据库的大小没有限制,但您可以通过SQLiteDatabase.setMaximumSize()设置数据库增长的最大大小。 如果达到限制,则必须缩小数据库。 或者,您可以将数据库从内部存储器移动到外部存储器,可能有更多可用空间并增加数据库最大大小。 但是繁重的数据库导致糟糕的用户体验,因此第二种选择考虑理论。 请记住,我们处于移动环境中,而不是专用数据库服务器。