首次启动时显示片段

Show Fragment on First Launch

我试图仅在应用程序首次启动时显示片段。我正在尝试显示该片段,但它总是显示,我只希望它在首次启动时显示。 我正在从一个名为 displayView 的方法中替换片段,在导航抽屉抽屉侦听器中(这可能是我的问题),我试图在我的方法中使用布尔值和共享首选项。关于为什么这不起作用的任何想法

mDrawerLayout.setDrawerListener(mDrawerToggle);

        if (savedInstanceState == null) {
            // on first time display view for first nav item
            firstTimeFrag();
        }
    }
    private boolean firstTimeFrag(){
        SharedPreferences pref = getPreferences(MODE_PRIVATE);

        boolean ranBefore = pref.getBoolean("RanBefore",false);
        if(!ranBefore){
        SharedPreferences.Editor editor = pref.edit();
        editor.commit();
        Fragment fr = new ifFirstTimeFrag();
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fm.beginTransaction();
        fragmentTransaction.replace(R.id.frame_container, fr);
        fragmentTransaction.commit();
    }else{
            displayView(0);
        }
    return ranBefore;
}

你没有保存任何东西^^

SharedPreferences.Editor editor = pref.edit();
editor.commit();

使用这个:

SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("RanBefore", true);
editor.commit();