0

我有 2 个活动。主要活动

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 仅在应用程序第一次启动时调用。它调用 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 始终启动。所以我猜有偏好的东西不能正常工作。我做错了什么或者我必须做什么才能使这段代码有效?

4

1 回答 1

1

而不是使用getPreferences尝试使用

PreferenceManager.getDefaultSharedPreferences(context);
于 2013-07-17T15:51:57.623 回答