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

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

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

Solutions Collecting From Web of "为我的应用指定max sqlite db size。 如何处理db完全exception"

首先,要设置最大数据库大小,请使用上一个答案中提到的.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()设置数据库增长的最大大小。 如果达到限制,则必须缩小数据库。 或者,您可以将数据库从内部存储器移动到外部存储器,可能有更多可用空间并增加数据库最大大小。 但是繁重的数据库导致糟糕的用户体验,因此第二种选择考虑理论。 请记住,我们处于移动环境中,而不是专用数据库服务器。