Android 何时在活动中创建片段';s onCreate可访问吗?

Android 何时在活动中创建片段';s onCreate可访问吗?,android,android-fragments,android-lifecycle,Android,Android Fragments,Android Lifecycle,我正在activity onCreate方法中创建并附加一个片段: FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); mSlateFragment = new SlateFragment(); fragmentTransaction.add(R.id.root, mS

我正在activity onCreate方法中创建并附加一个片段:

FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
mSlateFragment = new SlateFragment();
fragmentTransaction.add(R.id.root, mSlateFragment);
fragmentTransaction.commit();
之后,我还将seekbar设置为其默认值,为此,我必须访问刚刚创建的mSlateFragment对象:

mSlateFragment.mSlate.setProperty(33);
但是,此呼叫会导致我的应用程序崩溃。在onStart中进行此调用可以解决崩溃问题,但这是有问题的,因为我只设置默认值,不想在每次活动到达前台时重置它们

我试图访问的mSlate对象是在片段的onCreateView中创建的(它是一个视图)


是否有关于碎片活动及其碎片的生命周期是如何交织在一起的信息?有办法让我的电话正常工作吗?在其片段的oncreate中创建我的视图似乎也没有帮助。

我会将默认值缓存在您的
SlateFragment
中,原因有二:

  • 您不再依赖于片段生命周期,可以在片段创建之后立即设置它们
  • onCreateView()
    在每次显示片段时都会被调用(例如,在屏幕旋转之后),因此您将失去默认值,因为视图是新创建的

  • 在这里,您可以获得有关片段生命周期的信息。该文档提供了一些指针,但对于不同的片段和活动方法如何调用它们自己,您知之甚少。我想我必须编写一个包含大量日志的示例应用程序才能解决这个问题。是的,出于许多原因,我会这么做。我正在将Slate视图从活动迁移到片段的过程中,这个特性让我感到惊讶。