Android FragmentPagerAdapter和Fragment';s视图生命周期

Android FragmentPagerAdapter和Fragment';s视图生命周期,android,android-fragments,android-viewpager,fragmentpageradapter,fragmentstatepageradapter,Android,Android Fragments,Android Viewpager,Fragmentpageradapter,Fragmentstatepageradapter,我对如何正确使用FragmentPagerAdapter有很多疑问。不是关于如何创建适配器或实现方法,而是与底层片段应该如何管理实例化视图有关 在关于FragmentPagerAdapter的Android API中,明确说明如下: 此版本的寻呼机最适合在有少量用户的情况下使用 通常,需要分页的静态片段较多,例如一组 标签用户访问的每个页面的片段将保留在其中 内存,尽管其视图层次结构在不可见时可能会被破坏。 这可能会导致使用大量内存,因为 实例可以保持任意数量的状态。对于较大的集合 在页面中,考

我对如何正确使用FragmentPagerAdapter有很多疑问。不是关于如何创建适配器或实现方法,而是与底层片段应该如何管理实例化视图有关

在关于FragmentPagerAdapter的Android API中,明确说明如下:

此版本的寻呼机最适合在有少量用户的情况下使用 通常,需要分页的静态片段较多,例如一组 标签用户访问的每个页面的片段将保留在其中 内存,尽管其视图层次结构在不可见时可能会被破坏。 这可能会导致使用大量内存,因为 实例可以保持任意数量的状态。对于较大的集合 在页面中,考虑FraceStasePeaServer适配器< < /P> 因此可以假设,由其自己的onCreateView中的片段返回的视图可以由Android处理。同样值得注意的是,当您有3个以上的页面并在它们之间切换时,对于同一个片段实例,每个片段的onCreateView会被多次调用。FragmentPagerAdapter API中给出的示例似乎非常适合这种方法:

    /**
     * The Fragment's UI is just a simple text view showing its
     * instance number.
     */
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_pager_list, container, false);
        View tv = v.findViewById(R.id.text);
        ((TextView)tv).setText("Fragment #" + mNum);
        return v;
    }
请注意,在这个示例中,片段本身没有保留对实例化视图的任何引用。但是,通常需要保存实例化的视图引用,以便通过用户交互进一步更新界面。在这种情况下,我假设视图层次结构不会像文档中建议的那样被破坏(因为片段状态没有被破坏)

在这种情况下,是否合法保存实例化的视图,然后在下一个onCreateView中再次返回

使用ViewPager中的setOffscreenPageLimit来增加内存中保存的页面数,而不是重用视图,这样更好吗

所有我的疑问都产生了,因为文档表明视图层次结构可以被破坏,但是如果您在片段中保留任何视图引用。。。它们不能被垃圾收集器销毁。我是对的