我的 Android 应用程序有一个 SQLite 数据库和一个内容提供程序。此 Content Provider 已在应用程序的AndroidManifest.xml
. 它没有导出,所以只有我的应用程序可以看到它。
作为重置用户配置文件的一部分,我想完全擦除该数据库并从头开始重新创建它。起初我尝试deleteDatabase()
从活动的上下文中调用。这有效,但前提是应用程序关闭并随后重新打开。否则,当我尝试插入说数据库是只读的行时,它会崩溃。我的理解是在调用之前需要先关闭连接deleteDatabase()
。然而,据我了解,连接由内容提供者管理,不应手动关闭。
作为替代方案,我使用 中的call()
方法ContentResolver
调用自定义函数,该函数将删除表中的所有数据并手动重置序列计数。
这可行,但现在我必须手动删除每个表中的数据,并且必须跟踪我将来所做的任何更改。
有没有更好的方法来删除整个数据库并在使用时使用onCreate()
my DatabaseHelper
( ) 触发器?SQLiteOpenHelper
ContentProvider