Android Room にはメソッド voidclearAllTables()
があり、ドキュメントによると、次のようになります。
としてこのデータベースに登録されているすべてのテーブルからすべての行を削除します
entities()
。これは、 によって生成された自動インクリメント値をリセットしません
autoGenerate()
。行を削除した後、Room は WAL チェックポイントを設定し、VACUUM を実行します。これは、データが完全に消去されたことを意味します。量がデータベース ファイル サイズのしきい値を超えると、スペースはシステムによって再利用されます。
プロジェクトで確認したところ、その呼び出し後に db にデータがないように見えますが、デバイスから *.db ファイルをプルしてsqliteビューアーで開くと、すべてのデータが存在し、テーブルがいっぱいで何もないことがわかりました。消去されました。それはどうしてですか?これは、私のアプリの潜在的な欠陥であると考えています。クリーンルームデータベースの信頼できるアプローチを提供してください