android - 如何在android中卸载应用程序时删除共享首选项

标签 android android-preferences

我有一个 android 应用程序可以通过 SharedPreferences 保存登录详细信息,例如用户名和密码,这可以正常工作,但我需要删除所有使用过的 SharedPreferences 而我的应用程序卸载。怎么做?

SavePreferences("one ", "");
SavePreferences("two", "");
LoadPreferences();

 private void SavePreferences(String key, String value){
    sharedPreferences = getSharedPreferences("TEST", MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(key, value);
    editor.commit();
   }

 private void LoadPreferences(){
    sharedPreferences = getSharedPreferences("TEST", MODE_PRIVATE);
    String strSavedMem1 = sharedPreferences.getString("MEM1", "");
    String strSavedMem2 = sharedPreferences.getString("MEM2", "");   
   } 

我想在我的应用程序卸载时删除此 SharedPreferences

最佳答案

问题不在于偏好。简直是备份管理器! ..因为android-23默认备份作为任务存储应用程序的数据,包括云的偏好。稍后当您卸载然后安装较新版本时,您可能会使用恢复的首选项。为避免这种情况,只需将其添加到您的 list 中(或至少调试 list ):

<application ...
        android:allowBackup="false">
...
</application>

阅读:http://developer.android.com/guide/topics/data/backup.html

如果您在 Android > Lint > Security 下运行 Lint,您还会看到:

lint warning on backup

在这里提一下,备份过程就像一个黑匣子......你不知道它什么时候开始,检查之间的时间间隔......所以最好开发禁用它。

==== 更新 ====

allowbackup 设置为 false 后,您可能会遇到 Manifest 合并问题。要解决该问题,请添加:

tools:replace="android:allowBackup"

在应用程序元素中。 感谢@shahzain-ali

或者,您可以在卸载应用程序之前清除缓存。

希望对你有所帮助。

关于android - 如何在android中卸载应用程序时删除共享首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15873066/

相关文章:

java - Android - 布局性能 : Programmatic vs XML

java - 使用 Javascript 从 WebView 调用 Activity 的方法

android - 用于流 android 的 UPnP 媒体服务器

android - 由于 Android Camera Intent 重新绘制屏幕,​​Espresso 测试失败

java - Android 的 PreferenceScreen 替代方案

Android如何设置一个 View 的透明图片资源?或删除图像?

Android:如何初始化 PreferenceFragment 中的所有摘要

android - 当从 ListPreference 中选择选项时,PreferenceActivity 给出 NullPointerException

android - 尝试使用 SharedPreferences 存储字符串集时的不当行为

java - 为什么 PreferenceCategory 的标题和复选框颜色这么浅?我该如何更改它?