gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:21:31 24 4
gpt4 key购买 nike

我已经使用 SharedPreferences 来检查它是否已经登录。但是,在我登录并卸载应用程序后,在重新安装应用程序时它总是给出真实的值,并且不会显示登录页面。为什么?是不是当应用程序被卸载时,sharedPreference中的值也应该消失了?它可以在未签名的 apk 中运行(即当您直接通过 android studio 安装应用程序时),但一旦我使用签名的 apk,问题就会出现。它发生在诺基亚 5 和其他一些设备上,但在其他 Android 设备上工作得很好。怎么解决呢?

public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


SharedPreferences pref = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE);

**//always gives true value here...**
Log.e("loginStatus", pref.getBoolean("activity_executed", false) + "");
if (pref.getBoolean("activity_executed", false)) {
Log.e("loginStatus", pref.getBoolean("activity_executed", false) + "");

Intent intent = new Intent(this, LiveTrack.class);
startActivity(intent);
finish();
} else {
Log.e("loginStatus", "notlogin");
}
}
}

最佳答案

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

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

还要确保您没有将allowBackup设置为true,因为从android-23开始,默认情况下备份会将应用程序的数据(包括首选项)存储到云中。稍后,当您卸载然后重新安装较新的版本时,您将使用恢复的首选项。

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

关于android - 卸载应用程序不会删除 SharedPreferences 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47094590/

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