Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Viewpager,活动上的片段生命周期_Android_Android Fragments_Android Viewpager_Fragment - Fatal编程技术网

Android Viewpager,活动上的片段生命周期

Android Viewpager,活动上的片段生命周期,android,android-fragments,android-viewpager,fragment,Android,Android Fragments,Android Viewpager,Fragment,我有一个使用FragmentPagerAdapter的ViewPager实例的FragmentActivity。我首先创建一个片段实例列表,然后将其传递给适配器,以便它可以为正确的页面返回正确的片段 我现在的问题是如何处理活动娱乐。假设应用程序停止,在后台活动被销毁,然后活动恢复。 我知道在onCreate中,活动将首先根据在bundle中传递的FragmentState实例重新创建片段。然后创建一组其他片段并将其传递给适配器,这当然不是我想要的 这里的惯例是什么?避免在onCreate方法中重

我有一个使用FragmentPagerAdapter的ViewPager实例的FragmentActivity。我首先创建一个片段实例列表,然后将其传递给适配器,以便它可以为正确的页面返回正确的片段

我现在的问题是如何处理活动娱乐。假设应用程序停止,在后台活动被销毁,然后活动恢复。 我知道在onCreate中,活动将首先根据在bundle中传递的FragmentState实例重新创建片段。然后创建一组其他片段并将其传递给适配器,这当然不是我想要的


这里的惯例是什么?避免在onCreate方法中重新创建片段是否可以接受/可能?或者我应该尝试重用重新创建的片段并将其传递给适配器吗?

允许重新创建片段是一种常见的做法,但在特定情况下,您可能希望使用,但一般来说,允许重新创建UI是可以的。尝试使用它,或者尝试防止在旋转时破坏活动可能会导致不希望的行为,有时会使应用程序过于复杂


这就是为什么,理想情况下,您可以将模型置于UI类之外,例如活动、片段,因为您可以轻松地重新创建以前的状态。

好的,这听起来很合乎逻辑。在这种情况下,我仍然不确定如何从ViewPager外部访问ViewPager的片段。我们无法使用findFragmentById或findFragmentByTag询问FragmentManager,因为每个片段实例都是使用ViewPager的getItem主体中的.newInstance方法创建的,并且没有标记或定义的id。