6

Android Room にはメソッド voidclearAllTables()があり、ドキュメントによると、次のようになります。

としてこのデータベースに登録されているすべてのテーブルからすべての行を削除しますentities()

これは、 によって生成された自動インクリメント値をリセットしませんautoGenerate()

行を削除した後、Room は WAL チェックポイントを設定し、VACUUM を実行します。これは、データが完全に消去されたことを意味します。量がデータベース ファイル サイズのしきい値を超えると、スペースはシステムによって再利用されます。

プロジェクトで確認したところ、その呼び出し後に db にデータがないように見えますが、デバイスから *.db ファイルをプルしてsqliteビューアーで開くと、すべてのデータが存在し、テーブルがいっぱいで何もないことがわかりました。消去されました。それはどうしてですか?これは、私のアプリの潜在的な欠陥であると考えています。クリーンルームデータベースの信頼できるアプローチを提供してください

4

1 に答える 1