我有2项活动。 MainActivity
public class MainActivity extends SherlockFragmentActivity{
private SharedPreferences settings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
settings = getPreferences(0);
if (settings.getBoolean("firstStart", true)) {
Intent i = new Intent(getApplicationContext(), LoginActivity.class);
startActivity(i);
finish();
}
}
}
LoginActivity,仅在App首次启动时调用。它调用saveClass()方法:
private void saveClass() {
SharedPreferences preferences = getPreferences(0);
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("firstStart", false);
editor.commit();
Toast.makeText(LoginActivity.this, R.string.toast_login_success, Toast.LENGTH_SHORT).show();
Intent i = new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
finish();
}
现在问题是:
始终启动LoginActivity。所以我猜有偏好的东西不能正常工作。 我犯了什么错误或者我该怎么做才能使用此代码?
答案 0 :(得分:1)
而不是使用getPreferences
尝试使用
PreferenceManager.getDefaultSharedPreferences(context);