如何确定碎片是否第一次打开?

时间:2015-08-09 18:57:26

标签: android android-fragments

假设我有一个处理游戏的主片段,我使用setArguments将游戏板放入片段构建参数中,我需要在游戏第一次向用户显示时启动游戏板布局,任何其他时间,例如当他在按下主页或打电话后回到应用程序时,我不需要更换电路板。我可以通过在参数包中添加一些布尔值来轻松实现,在第一次将其设置为true并在启动布局之前检查它,但我想知道是否有另一种使用片段生命周期回调的方式?

3 个答案:

答案 0 :(得分:0)

在父活动的onResume()中的onPause()和getRetainInstance()中尝试setRetainInstance(true),如下所示:

getSupportFragmentManager().findFragmentByTag("MyFragment")
        .setRetainInstance(true);


getSupportFragmentManager().findFragmentByTag("MyFragment")
        .getRetainInstance();

答案 1 :(得分:0)

你可以这样检查:

     @Override
     public void onCreate(Bundle savedInstanceState) {
           if(savedInstanceState == null){
               //firstTime
           }
     }

答案 2 :(得分:0)

好的,我认为这会有所帮助

首先设置SharedPreferences。

SharedPreferences pref = getActivity.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
    editor = pref.edit();

Editor editor.putBoolean(KEY, Val);
editor.commit();

获取值:

pref.getBoolean(KEY_IS_LOGGEDIN, false);