Pro*_*001 7 sqlite android recreate oncreate android-contentprovider
我的Android应用程序有一个SQLite数据库和一个内容提供程序.此内容提供商已在应用程序中注册AndroidManifest.xml.它不会导出,所以只有我的应用才能看到它.
作为重置用户配置文件的一部分,我想彻底擦除此数据库并从头开始重新创建它.起初我尝试deleteDatabase()从活动的上下文中调用.这有效,但仅在应用程序关闭后重新打开.否则,当我尝试插入表示数据库是只读的行时,它将崩溃.我的理解是在呼叫之前需要先关闭连接deleteDatabase().然而,据我所知,连接由内容提供商管理,不应手动关闭.
作为替代方案,我使用调用自定义函数的call()方法来ContentResolver删除表中的所有数据并手动重置序列计数.
这是有效的,但现在我必须手动删除每个表中的数据,并且必须跟踪我将来做出的任何更改.
是否有更好的方法来删除整个数据库并在使用时使用onCreate()my DatabaseHelper(SQLiteOpenHelper)触发器ContentProvider?
我想到的一个建议是让您的自定义函数删除表并重新创建它们。onCreate()您已经拥有在of中创建表的代码DatabaseHelper。DatabaseHelper将其重构到可由自定义方法访问的地方。
| 归档时间: |
|
| 查看次数: |
325 次 |
| 最近记录: |