如何在卸载 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当我的应用程序卸载。

60003 次浏览

随着应用程序的卸载,SharedPreferences总是被删除。

当你卸载任何应用程序时,应用程序在内存中所做的所有更改都会被撤销,这意味着你的 SharedPreferences 文件、其他数据文件、数据库文件、应用程序都会被 Android 操作系统自动删除。

编辑: 29/04/15: for > = 21 API 参考 @ Maher Abuthraa 的回答

问题不在于偏好。这是大幅度的 备份经理!..因为 android-23默认备份作为任务存储应用程序的数据,包括云的首选项。稍后当你卸载,然后安装新版本,你可能会使用还原的首选项。为了避免这种情况,只需将其添加到清单中(或者至少添加到调试清单中) :

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

看看这个: http://developer.android.com/guide/topics/data/backup.html

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

lint warning on backup

这里需要指出的是,备份过程就像一个黑盒。.你不知道它什么时候开始,检查之间的时间间隔... 所以更好的开发,禁用它。

= = = = 更新 = = = =

在将 allowbackup设置为 false之后,您可能会遇到清单合并问题。要解决这个问题,请添加:

tools:replace="android:allowBackup"

in the application element. 感谢@shahzain-ali

你也可以在卸载应用程序之前清除缓存。

我希望这能有所帮助。

这很奇怪,但我通过以下方式找到了解决办法:

  1. Xml文件的 名单标签中添加 xmlns:tools="http://schemas.android.com/tools"
  2. Xml文件的 申请标签中添加 android:allowBackup="false"
  3. Xml文件的 application tag中添加 tools:replace="android:allowBackup"

Manifest.xml file should looks like this.

    <?xml version="1.0" encoding="utf-8"?><!--suppress ALL -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.package">


// Other code


<application
android:name="com.package.Application"
android:allowBackup="false"
android:hardwareAccelerated="true"
android:icon="@drawable/appicon"
android:label="@string/application_name"
android:largeHeap="true"
android:theme="@style/AppTheme"
tools:replace="android:allowBackup">


<activity
android:name="com.package.SplashActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/application_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />


<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>


// Other code


</application>


</manifest>

搞定了。

设置 allowBackup="false"会选择应用程序不进行备份和还原。

 android:allowBackup="false"

问题不在于偏好。

use this code for fix it..........

<application
android:allowBackup="true"
android:fullBackupContent="false"></application>

共享首选项不再像棉花糖那样总是被删除,在你的清单中添加这一行: “ android: allowBackup = “ false”