インタビューで、Android アプリの sqlite db の最大サイズを設定する方法を尋ねられました。また、最大サイズに達した場合、どのように処理できますか?
EDIT : 以下の Marina Lynn の回答は、この質問に受け入れられるようです。しかし、データベースのサイズが指定した制限に近づいたときにトリガーされるある種のリスナーはありますか? (またはこのようなもの)
インタビューで、Android アプリの sqlite db の最大サイズを設定する方法を尋ねられました。また、最大サイズに達した場合、どのように処理できますか?
EDIT : 以下の Marina Lynn の回答は、この質問に受け入れられるようです。しかし、データベースのサイズが指定した制限に近づいたときにトリガーされるある種のリスナーはありますか? (またはこのようなもの)
.setMaximumSize()
最初に、前の回答で述べたように、最大データベース サイズの使用を設定します。
SQLiteFullException
次に、データベース ファイルが最大ページ数 * ページ サイズよりも大きくなると、Android がスローします。SQLiteFullException
ですRuntimeException
。それを処理して関連する応答を送信する場合は、次のようにします。
try {
getContentResolver().update(myEntity.CONTENT_URI, values, where, null);
} catch (SQLiteFullException e) {
Log.w(TAG, "Exception when updating ...", e);
}
使用可能なストレージを除いてデータベースのサイズに制限はありませんが、データベースを最大サイズに設定できますSQLiteDatabase.setMaximumSize()
。制限に達した場合は、データベースを縮小する必要があります。または、データベースを内部メモリから外部ストレージに移動して、空き領域を増やし、データベースの最大サイズを増やすこともできます。ただし、データベースが重いとユーザーエクスペリエンスが低下するため、2番目のオプションは理論的と見なします。専用のデータベースサーバーではなく、モバイル環境にいることを忘れないでください。