我有一个 Activity ,我只想在第一次运行应用程序时运行。我检查了一个指定的共享首选项,它返回一个 bool 值。如果它返回 true,它将被启动,并将被设置为 false,以便下次打开应用程序时它不会运行。但是我的实现出错了。每次我打开 BeforMain1 Activity 都会打开。有人可以建议我的代码有什么问题吗?
sharedPreferences = getSharedPreferences("ShaPreferences", Context.MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
boolean firstTime=sharedPreferences.getBoolean("first", true);
if(firstTime) {
editor.putBoolean("first",false);
Intent intent = new Intent(SplashScreen.this, BeforeMain1.class);
startActivity(intent);
}
else
{
Intent intent = new Intent(SplashScreen.this, MainActivity.class);
startActivity(intent);
}
最佳答案
您忘记提交 SharedPreferences 更改,
if(firstTime) {
editor.putBoolean("first",false);
//For commit the changes, Use either editor.commit(); or editor.apply();.
editor.commit(); or editor.apply();
Intent intent = new Intent(SplashScreen.this, BeforeMain1.class);
startActivity(intent);
}else {
Intent intent = new Intent(SplashScreen.this, MainActivity.class);
startActivity(intent);
}
关于android - SharedPreference 未按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33455355/