android - 自定义帐户身份验证器。从设备中删除帐户后的清理

标签 android accountmanager

有没有办法获得某种通知/广播/等。当自定义帐户从“帐户和同步设置”中删除时?

我拥有的应用程序可以方便设备上的多个用户(这是供公司使用的)并使用单个 SQLite 数据库。假设我在设备上为我的应用程序创建了多个用户,并使用仅与这两个用户相关的数据填充数据库。我的问题是,如果其中一位用户从“帐户和同步设置”中删除,我将无法清理数据库和/或 SD 卡上的一些外部文件。

我可以在冗余表中复制用户信息并将其与注册帐户进行比较,然后如果表中的用户信息与 AccountManager 中的 Account[] 数组不匹配,则从数据库中删除用户数据。我觉得很脏。

最佳答案

你有两个选择:

  1. 您可以使用 <a href="http://developer.android.com/reference/android/accounts/AccountManager.html#addOnAccountsUpdatedListener%28android.accounts.OnAccountsUpdateListener,%20android.os.Handler,%20boolean%29" rel="noreferrer noopener nofollow">addOnAccountsUpdatedListener</a> AccountManager的方法|在 onCreate 中添加监听器Activity 的方法或 Service -- 确保删除 onDestroy 中的监听器方法(即不要在无休止运行的服务中使用它)或 Context用于检索 AccountManager永远不会被垃圾回收

  2. AccountsService将通过操作 <a href="http://developer.android.com/reference/android/accounts/AccountManager.html#LOGIN_ACCOUNTS_CHANGED_ACTION" rel="noreferrer noopener nofollow">AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION</a> 广播 Intent 每次添加、删除或更改帐户时,您都可以为其添加接收者。

关于android - 自定义帐户身份验证器。从设备中删除帐户后的清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6074247/

相关文章:

Android GridView 最后一列被删减

java - 在 Java/Android 中替换字符串中的多个子字符串

android - AccountAuthenticatorActivity 上的 getSupportFragmentManager

android - AccountManager blockingGetAuthToken 卡住了

android - 像在 Play 商店应用中一样实现搜索栏

java - 创建 googleApiClient 导致 android 应用程序崩溃

android - Android客户端中AccountManager的AuthToken不再工作

android - 如何解决“"caller uid XXXX is different than the authenticator' s uid”问题?

Android addAccount明确使用 "com.google"类型

android - 从 Android 设备获取收件箱消息以显示在自定义 ListView 中