卸载应用程序并不会删除SharedPreferences的值

时间:2017-11-03 11:22:38

标签: android sharedpreferences

我使用过SharedPreferences来检查它是否已经登录。但是在我登录然后卸载应用程序之后,它总是在重新安装应用程序时提供真正的价值,并且不显示登录页面。为什么?卸载应用程序时,sharedPreference中的值应该也已经消失了吗?它适用于未签名的apk(即直接通过android studio安装应用程序),但只要我使用签名的apk,就会出现问题。它发生在诺基亚5和其他一些设备上,但在其他Android设备上运行得非常好。我该如何解决?

private static final long EPOCH_DAY = 1000L * 60 * 60 * 24;
public static void main(String[] args){
    int i = (int) (new Date().getTime()/EPOCH_DAY);
    System.out.println(new Date(i * EPOCH_DAY));

1 个答案:

答案 0 :(得分:1)

这是某些设备的问题。当用户退出应用程序时,请尝试手动删除数据文件。

File sharedPreferenceFile = new File("/data/data/"+ getPackageName()+ "/shared_prefs/");
File[] listFiles = sharedPreferenceFile.listFiles();
for (File file : listFiles) {
    file.delete();
}

另外请确保您没有将allowBackup设置为true,因为默认情况下,android-23会将应用程序的数据(包括偏好设置)保存到云端。当您卸载然后重新安装较新版本时,您将使用恢复的首选项。< / p>

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