gpt4 book ai didi

android - 删除帐户时删除数据库

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:54 28 4
gpt4 key购买 nike

我的应用程序使用 SyncAdapter 模式,使用 AccountManagerContentProvider 保存用户凭据以将数据存储在数据库中。

account 被删除时,我可以使用 this question 中解释的方法删除数据库.通过执行以下操作删除数据库:

boolean deleted = mContext.deleteDatabase(DatabaseHelper.DATABASE_NAME);

这工作正常,但是当我再次登录时,一切都还在那里。感觉 ContentProvider 不知道数据库已被删除。

this answer , inazaruk 说:

You need to make sure you've killed the process that hosts ContentProvider that uses that specific database file. And only than delete it.

杀死进程以清除数据库感觉不对。

还有更好的办法吗?

最佳答案

如果我必须这样做,我会尝试以下方式:

添加一些 Uri,当您使用 Uri 插入或删除时,会触发 ContentProvider 中的数据库删除。删除时还清除对 SQLiteDatabase 的所有引用,因为您仍然可以通过它访问旧数据库文件(如果您在 Linux 中删除了一个文件并且打开​​了该文件,您仍然可以使用它- 它只是不再可以通过路径访问)。

通过将删除放在 ContentProvider 中,您应该能够关闭数据库连接并以您知道需要重新创建数据库文件的方式跟踪删除状态。

ContentProviders 除非您终止您的应用程序,否则不会退出,因此您可能正在运行相同的实例并且可能引用了上面提到的旧文件

关于android - 删除帐户时删除数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11868839/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com