0
我有2个活动。 MainActivity登录和MainActivity之间的Android切换
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总是启动。所以我猜想偏好设置不正常。 我犯了什么错误,或者我该做什么,这段代码的工作原理?
偏好节省,因为你是commiting的变化,那你的逻辑开始活动看起来不错? – tyczj
你可以发布getPreferences(0)的代码; –
也许有问题。我不知道。我认为这应该通常工作,但它看起来像'''settings.getBoolean(“firstStart”,true)'''总是返回true。这应该只是如果入口''firstStart'''不在首选项 – maysi