Android 和 Fragment 生命周期回调执行顺序

目录

1. 问题

2. 记录

2.1 Activity

2.2 Fragment

2.3 Fragment 和 FragmentPagerAdapter

2.4 Fragment 和 FragmentStatePagerAdapter

3. 附录数据

3.1 实验一:

3.2 实验二:

3.3 实验三:

3.4 实验四:


1. 问题

最近发现有些时候Fragment 周期和Activity 周期执行顺序弄混了,有些情况下App 展示会出问题,然后研究一番,简单记录一下回调执行顺序;

2. 记录

2.1 Activity

Activity 生命周期:

a. 手机打开APP 并成功创建Activity

I/FragmentHomeActivity: onCreate()

I/FragmentHomeActivity: onAttachFragment()
I/FragmentHomeActivity: onAttachFragment()

I/FragmentHomeActivity: onStart()
I/FragmentHomeActivity: onResume()

I/FragmentHomeActivity: onResumeFragments()
I/FragmentHomeActivity: onAttachedToWindow()

b. activity 切换到后台,回到桌面

I/FragmentHomeActivity: onPause()
I/FragmentHomeActivity: onStop()

I/FragmentHomeActivity: onSaveInstanceState()

c. activity 切换到前台,从桌面回到APP(直接点击APP 图标也是一样的)

I/FragmentHomeActivity: onRestart()
I/FragmentHomeActivity: onStart()
I/FragmentHomeActivity: onResume()

I/FragmentHomeActivity: onResumeFragments()

d. activity 后退,关闭当前页面

I/FragmentHomeActivity: onPause()
I/FragmentHomeActivity: onStop()
I/FragmentHomeActivity: onDestroy()

I/FragmentHomeActivity: onDetachedFromWindow()

2.2 Fragment

Fragment 生命周期:

a. 手机打开APP,并成功建立Fragment(在Activity 中)

I/AFragment: onAttach()
I/AFragment: onCreate()
I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()

I/AFragment: onViewStateRestored()

I/AFragment: onHiddenChanged(true)    // 注意,首次创建会调用2遍,需要结合onResume() 判断
I/AFragment: onHiddenChanged(false)
I/AFragment: onStart()
I/AFragment: onResume()

 b. Fragment 切换到后台,回到桌面

I/AFragment: onPause()
I/AFragment: onStop()

I/AFragment: onSaveInstanceState()

c. Fragment 切换到前台,从桌面回到APP(直接点击APP 图标也是一样的)

I/AFragment: onStart()
I/AFragment: onResume()

d. activity 后退,关闭当前页面(Fragment 销毁)

I/AFragment: onPause()

I/AFragment: onStop()
I/AFragment: onDestroyView()
I/AFragment: onDestroy()
I/AFragment: onDetach()

e. 成功建立AFragment,BFragment,并切换到BFragment

I/AFragment: onAttach()
I/AFragment: onCreate()
I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onHiddenChanged(true)
I/AFragment: onHiddenChanged(false)
I/AFragment: onStart()
I/AFragment: onResume()

I/AFragment: onHiddenChanged(true) 
I/AFragment: onAttach()
I/AFragment: onCreate()
I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onHiddenChanged(true)

I/BFragment: onAttach()
I/BFragment: onCreate()
I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onHiddenChanged(true)

I/AFragment: onHiddenChanged(false)

I/AFragment: onStart()
I/BFragment: onStart()

I/AFragment: onResume()
I/BFragment: onResume()

I/AFragment: onHiddenChanged(true)
I/BFragment: onHiddenChanged(false)

f. 成功建立AFragment,BFragment,并切换到BFragment,在切换到AFragment,最后后退关闭当前Activity(销毁AFragment,BFragment)

I/AFragment: onAttach()
I/AFragment: onCreate()
I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onHiddenChanged(true)

I/BFragment: onAttach()
I/BFragment: onCreate()
I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onHiddenChanged(true)

I/AFragment: onHiddenChanged(false)

I/AFragment: onStart()
I/BFragment: onStart()

I/AFragment: onResume()
I/BFragment: onResume()    // 截止到此处向上, AFragment 和BFragment 创建的完整过程

I/AFragment: onHiddenChanged(true)    // 切换到BFragment
I/BFragment: onHiddenChanged(false)

I/BFragment: onHiddenChanged(true)    // 切换到AFragment
I/AFragment: onHiddenChanged(false)

I/AFragment: onPause()    // 从此处向下,AFragment 和BFragment 销毁的完整过程
I/BFragment: onPause()

I/AFragment: onStop()
I/BFragment: onStop()

I/AFragment: onDestroyView()
I/AFragment: onDestroy()
I/AFragment: onDetach()

I/BFragment: onDestroyView()
I/BFragment: onDestroy()
I/BFragment: onDetach()

g. 完整的Activity 创建,AFragment和BFragment 创建,切换BFragment 然后切换到AFragment,最后关闭页面Activity,销毁AFragment和BFragment 如下:

I/FragmentHomeActivity: onCreate()

I/AFragment: onAttach()
I/FragmentHomeActivity: onAttachFragment()
I/AFragment: onCreate()
I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onHiddenChanged(true)

I/BFragment: onAttach()
I/FragmentHomeActivity: onAttachFragment()
I/BFragment: onCreate()
I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onHiddenChanged(true)

I/FragmentHomeActivity: onAttachFragment()

I/AFragment: onHiddenChanged(false)

I/AFragment: onStart()
I/BFragment: onStart()
I/FragmentHomeActivity: onStart()

I/FragmentHomeActivity: onResume()
I/AFragment: onResume()
I/BFragment: onResume()

I/FragmentHomeActivity: onResumeFragments()

I/FragmentHomeActivity: onAttachedToWindow()

I/AFragment: onHiddenChanged(true)    // 切换到BFragment
I/BFragment: onHiddenChanged(false)

I/BFragment: onHiddenChanged(true)    // 切换到AFragment
I/AFragment: onHiddenChanged(false)

I/AFragment: onPause()
I/BFragment: onPause()
I/FragmentHomeActivity: onPause()

I/AFragment: onStop()
I/BFragment: onStop()
I/FragmentHomeActivity: onStop()

I/AFragment: onDestroyView()
I/AFragment: onDestroy()
I/AFragment: onDetach()

I/BFragment: onDestroyView()
I/BFragment: onDestroy()
I/BFragment: onDetach()

I/FragmentHomeActivity: onDestroy()
I/FragmentHomeActivity: onDetachedFromWindow()

2.3 Fragment 和 FragmentPagerAdapter

a. 手机打开APP,并成功建立Fragment(在Activity 中,ViewPager + FragmentPagerAdapter + Fragment)

条件:默认缓存数量为1,默认设置显示为AFragment;

I/FragmentHomeNoStateActivity: onCreate()
I/FragmentHomeNoStateActivity: onStart()
I/FragmentHomeNoStateActivity: onResume()
I/FragmentHomeNoStateActivity: onResumeFragments()
I/FragmentHomeNoStateActivity: onAttachedToWindow()

I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(false)

I/AFragment: setUserVisibleHint(true)   // 默认缓存1个Fragment,且默认为0索引处的Fragment

I/AFragment: onAttach()
I/FragmentHomeNoStateActivity: onAttachFragment()
I/AFragment: onCreate()

I/BFragment: onAttach()
I/FragmentHomeNoStateActivity: onAttachFragment()
I/BFragment: onCreate()

I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onStart()
I/AFragment: onResume()

I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onStart()
I/BFragment: onResume()

I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.0,positionOffsetPixels: 0)

 b. Fragment 切换到后台,回到桌面

I/AFragment: onPause()
I/BFragment: onPause()
I/FragmentHomeNoStateActivity: onPause()

I/AFragment: onStop()
I/BFragment: onStop()
I/FragmentHomeNoStateActivity: onStop()

I/AFragment: onSaveInstanceState()
I/BFragment: onSaveInstanceState()
I/FragmentHomeNoStateActivity: onSaveInstanceState()

c. Fragment 切换到前台,从桌面回到APP(直接点击APP 图标也是一样的)

I/FragmentHomeNoStateActivity: onRestart()

I/AFragment: onStart()
I/BFragment: onStart()
I/FragmentHomeNoStateActivity: onStart()

I/FragmentHomeNoStateActivity: onResume()
I/AFragment: onResume()
I/BFragment: onResume()
I/FragmentHomeNoStateActivity: onResumeFragments()

d. activity 后退,关闭当前页面(Fragment 销毁)

I/AFragment: onPause()
I/BFragment: onPause()
I/FragmentHomeNoStateActivity: onPause()

I/AFragment: onStop()
I/BFragment: onStop()
I/FragmentHomeNoStateActivity: onStop()

I/AFragment: onDestroyView()
I/AFragment: onDestroy()
I/AFragment: onDetach()

I/BFragment: onDestroyView()
I/BFragment: onDestroy()
I/BFragment: onDetach()

I/FragmentHomeNoStateActivity: onDestroy()
I/FragmentHomeNoStateActivity: onDetachedFromWindow()

e. 成功建立AFragment,BFragment,并切换到BFragment

条件:默认缓存数量为1,默认设置显示为AFragment;

I/FragmentHomeNoStateActivity: onCreate()
I/FragmentHomeNoStateActivity: onStart()
I/FragmentHomeNoStateActivity: onResume()
I/FragmentHomeNoStateActivity: onResumeFragments()
I/FragmentHomeNoStateActivity: onAttachedToWindow()

I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(false)

I/AFragment: setUserVisibleHint(true)

I/AFragment: onAttach()
I/FragmentHomeNoStateActivity: onAttachFragment()
I/AFragment: onCreate()

I/BFragment: onAttach()
I/FragmentHomeNoStateActivity: onAttachFragment()
I/BFragment: onCreate()

I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onStart()
I/AFragment: onResume()

I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onStart()
I/BFragment: onResume()

// 从 0 -> 1, 页面切换

I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.004166667,positionOffsetPixels: 3)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.03888889,positionOffsetPixels: 28)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.07638889,positionOffsetPixels: 55)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.13194445,positionOffsetPixels: 95)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.2375,positionOffsetPixels: 171)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.3861111,positionOffsetPixels: 278)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.45833334,positionOffsetPixels: 330)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.5486111,positionOffsetPixels: 395)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.62916666,positionOffsetPixels: 453)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.6472222,positionOffsetPixels: 466)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeNoStateActivity: onPageSelected(position: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.7083333,positionOffsetPixels: 510)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.76666665,positionOffsetPixels: 552)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.8125,positionOffsetPixels: 585)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.8541667,positionOffsetPixels: 615)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.88611114,positionOffsetPixels: 638)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9125,positionOffsetPixels: 657)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.93472224,positionOffsetPixels: 673)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9513889,positionOffsetPixels: 685)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9638889,positionOffsetPixels: 694)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.975,positionOffsetPixels: 702)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.98194444,positionOffsetPixels: 707)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9875,positionOffsetPixels: 711)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9916667,positionOffsetPixels: 714)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.99444443,positionOffsetPixels: 716)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.99722224,positionOffsetPixels: 718)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9986111,positionOffsetPixels: 719)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 0)

I/CFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(true)    // 切换到1,即BFragment

I/CFragment: onAttach()
I/FragmentHomeNoStateActivity: onAttachFragment()
I/CFragment: onCreate()

I/CFragment: onCreateView()
I/CFragment: onViewCreated()
I/CFragment: onActivityCreated()
I/CFragment: onViewStateRestored()
I/CFragment: onStart()
I/CFragment: onResume()

f. 成功建立AFragment,BFragment,CFragment,并切换到BFragment,在切换到AFragment,最后后退关闭当前Activity(销毁AFragment,BFragment)

条件:默认缓存数量为1,默认设置显示为AFragment;

I/FragmentHomeNoStateActivity: onCreate()
I/FragmentHomeNoStateActivity: onStart()
I/FragmentHomeNoStateActivity: onResume()
I/FragmentHomeNoStateActivity: onResumeFragments()
I/FragmentHomeNoStateActivity: onAttachedToWindow()

I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(true)

I/AFragment: onAttach()
I/FragmentHomeNoStateActivity: onAttachFragment()
I/AFragment: onCreate()

I/BFragment: onAttach()
I/FragmentHomeNoStateActivity: onAttachFragment()
I/BFragment: onCreate()

I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onStart()
I/AFragment: onResume()

I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onStart()
I/BFragment: onResume()

// 从 0 -> 1,页面切换

I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.013888889,positionOffsetPixels: 10)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.097222224,positionOffsetPixels: 70)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.29166666,positionOffsetPixels: 210)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.48194444,positionOffsetPixels: 347)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.50277776,positionOffsetPixels: 361)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeNoStateActivity: onPageSelected(position: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.6402778,positionOffsetPixels: 461)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.80277777,positionOffsetPixels: 578)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.90416664,positionOffsetPixels: 651)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.95694447,positionOffsetPixels: 689)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9847222,positionOffsetPixels: 709)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.99583334,positionOffsetPixels: 717)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9986111,positionOffsetPixels: 719)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 0)

I/CFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(true)

I/CFragment: onAttach()
I/FragmentHomeNoStateActivity: onAttachFragment()
I/CFragment: onCreate()
I/CFragment: onCreateView()
I/CFragment: onViewCreated()
I/CFragment: onActivityCreated()
I/CFragment: onViewStateRestored()
I/CFragment: onStart()
I/CFragment: onResume()

// 从 1 -> 0,页面切换

I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.99583334,positionOffsetPixels: 717)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.93333334,positionOffsetPixels: 672)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.775,positionOffsetPixels: 558)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.5347222,positionOffsetPixels: 385)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.40833333,positionOffsetPixels: 294)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeNoStateActivity: onPageSelected(position: 0)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.26805556,positionOffsetPixels: 193)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.119444445,positionOffsetPixels: 86)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.043055557,positionOffsetPixels: 31)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.0125,positionOffsetPixels: 9)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.0027777778,positionOffsetPixels: 2)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 0)

I/BFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(true)

I/CFragment: onPause()
I/CFragment: onStop()
I/CFragment: onDestroyView()  // 注意,此时CFragment 依然被持有且没有被清理(FragmentPagerAdapter 销毁的只是Fragment 的视图View),CFragment 的View 被销毁


// 后退页面,销毁Activity和Fragment

I/AFragment: onPause()
I/BFragment: onPause()
I/FragmentHomeNoStateActivity: onPause()

I/AFragment: onStop()
I/BFragment: onStop()
I/FragmentHomeNoStateActivity: onStop()

I/AFragment: onDestroyView()
I/AFragment: onDestroy()
I/AFragment: onDetach()

I/BFragment: onDestroyView()
I/BFragment: onDestroy()
I/BFragment: onDetach()

I/CFragment: onDestroy()       // 此时,CFragment 被销毁
I/CFragment: onDetach()

I/FragmentHomeNoStateActivity: onDestroy()
I/FragmentHomeNoStateActivity: onDetachedFromWindow()

2.4 Fragment 和 FragmentStatePagerAdapter

a. 手机打开APP,并成功建立Fragment(在Activity 中,ViewPager + FragmentStatePagerAdapter + Fragment)

条件:默认缓存数量为1,默认设置显示为AFragment;

I/FragmentHomeStateActivity: onCreate()
I/FragmentHomeStateActivity: onStart()
I/FragmentHomeStateActivity: onResume()
I/FragmentHomeStateActivity: onResumeFragments()
I/FragmentHomeStateActivity: onAttachedToWindow()

I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(true) // 默认缓存数量为1,默认为索引为0的Fragment

I/AFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/AFragment: onCreate()

I/BFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/BFragment: onCreate()

I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onStart()
I/AFragment: onResume()

I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onStart()
I/BFragment: onResume()

I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.0,positionOffsetPixels: 0)

 b. Fragment 切换到后台,回到桌面

I/AFragment: onPause()
I/BFragment: onPause()
I/FragmentHomeStateActivity: onPause()

I/AFragment: onStop()
I/BFragment: onStop()
I/FragmentHomeStateActivity: onStop()

I/AFragment: onSaveInstanceState()
I/BFragment: onSaveInstanceState()
I/FragmentHomeStateActivity: onSaveInstanceState()

c. Fragment 切换到前台,从桌面回到APP(直接点击APP 图标也是一样的)

I/FragmentHomeStateActivity: onRestart()

I/AFragment: onStart()
I/BFragment: onStart()
I/FragmentHomeStateActivity: onStart()

I/FragmentHomeStateActivity: onResume()
I/AFragment: onResume()
I/BFragment: onResume()
I/FragmentHomeStateActivity: onResumeFragments()

d. activity 后退,关闭当前页面(Fragment 销毁)

I/AFragment: onPause()
I/BFragment: onPause()
I/FragmentHomeStateActivity: onPause()

I/AFragment: onStop()
I/BFragment: onStop()
I/FragmentHomeStateActivity: onStop()

I/AFragment: onDestroyView()
I/AFragment: onDestroy()
I/AFragment: onDetach()

I/BFragment: onDestroyView()
I/BFragment: onDestroy()
I/BFragment: onDetach()

I/FragmentHomeStateActivity: onDestroy()
I/FragmentHomeStateActivity: onDetachedFromWindow()

e. 成功建立AFragment,BFragment,并切换到BFragment

条件:默认缓存数量为1,默认设置显示为AFragment;

I/FragmentHomeStateActivity: onCreate()
I/FragmentHomeStateActivity: onStart()
I/FragmentHomeStateActivity: onResume()
I/FragmentHomeStateActivity: onResumeFragments()
I/FragmentHomeStateActivity: onAttachedToWindow()

I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(true)    // 默认缓存数量为1,默认显示索引为0的Fragment

I/AFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/AFragment: onCreate()

I/BFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/BFragment: onCreate()

I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onStart()
I/AFragment: onResume()

I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onStart()
I/BFragment: onResume()

// 从 0 -> 1,页面切换

I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.020833334,positionOffsetPixels: 15)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.12916666,positionOffsetPixels: 93)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.24861111,positionOffsetPixels: 179)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.43333334,positionOffsetPixels: 312)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.4763889,positionOffsetPixels: 343)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeStateActivity: onPageSelected(position: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.6375,positionOffsetPixels: 459)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.7916667,positionOffsetPixels: 570)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.88472223,positionOffsetPixels: 637)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.94027776,positionOffsetPixels: 677)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.9736111,positionOffsetPixels: 701)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.99027777,positionOffsetPixels: 713)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.99722224,positionOffsetPixels: 718)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.9986111,positionOffsetPixels: 719)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 0)

I/CFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(true)    // 切换到1,即BFragment

I/CFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/CFragment: onCreate()

I/CFragment: onCreateView()
I/CFragment: onViewCreated()
I/CFragment: onActivityCreated()
I/CFragment: onViewStateRestored()
I/CFragment: onStart()
I/CFragment: onResume()


f. 成功建立AFragment,BFragment,CFragment,并切换到BFragment,在切换到AFragment,最后后退关闭当前Activity(销毁AFragment,BFragment)

条件:默认缓存数量为1,默认设置显示为AFragment;

I/FragmentHomeStateActivity: onCreate()
I/FragmentHomeStateActivity: onStart()
I/FragmentHomeStateActivity: onResume()
I/FragmentHomeStateActivity: onResumeFragments()
I/FragmentHomeStateActivity: onAttachedToWindow()

I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(true)

I/AFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/AFragment: onCreate()

I/BFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/BFragment: onCreate()

I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onStart()
I/AFragment: onResume()

I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onStart()
I/BFragment: onResume()

// 从 0 -> 1,切换页面

I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.0375,positionOffsetPixels: 27)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.25555557,positionOffsetPixels: 184)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.525,positionOffsetPixels: 377)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeStateActivity: onPageSelected(position: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.7097222,positionOffsetPixels: 511)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.9027778,positionOffsetPixels: 650)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.9777778,positionOffsetPixels: 704)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.99722224,positionOffsetPixels: 718)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 0)

I/CFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(true)

I/CFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/CFragment: onCreate()

I/CFragment: onCreateView()
I/CFragment: onViewCreated()
I/CFragment: onActivityCreated()
I/CFragment: onViewStateRestored()
I/CFragment: onStart()
I/CFragment: onResume()

// 从 1 -> 0,切换页面

I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.9777778,positionOffsetPixels: 704)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.81805557,positionOffsetPixels: 589)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.5125,positionOffsetPixels: 369)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.22222222,positionOffsetPixels: 160)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeStateActivity: onPageSelected(position: 0)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.20833333,positionOffsetPixels: 150)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.0625,positionOffsetPixels: 45)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.011111111,positionOffsetPixels: 8)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.0013888889,positionOffsetPixels: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 0)

I/CFragment: onSaveInstanceState()    // 注意此处特殊现象,和FragmentPagerAdapter 中逻辑是不一样的
I/BFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(true)

I/CFragment: onPause()
I/CFragment: onStop()
I/CFragment: onDestroyView()
I/CFragment: onDestroy()    // 注意,此时CFragment 被销毁(FragmentStatePagerAdapter 销毁的只仅仅是Fragment 实例,还包括CFragment 的视图View 都被销毁)
I/CFragment: onDetach()

// 后退页面,销毁Activity和Fragment

I/AFragment: onPause()
I/BFragment: onPause()
I/FragmentHomeStateActivity: onPause()

I/AFragment: onStop()
I/BFragment: onStop()
I/FragmentHomeStateActivity: onStop()

I/AFragment: onDestroyView()
I/AFragment: onDestroy()
I/AFragment: onDetach()

I/BFragment: onDestroyView()
I/BFragment: onDestroy()
I/BFragment: onDetach()

// 因为CFragment 缓存实例已被销毁,所以此处不再有CFragment 的回调

I/FragmentHomeStateActivity: onDestroy()
I/FragmentHomeStateActivity: onDetachedFromWindow()

3. 附录数据

自己折腾了折腾,把记录贴下来,后续有问题了继续修正更新;

3.1 实验一

有个FragmentHomeActivity 里包含 AFragment|BFragment|CFragment|DFragment,

初始条件:

              1. 不包含CFragment 实例(默认状态);

 

3.2 实验二

有个FragmentHomeActivity 里包含 AFragment|BFragment|CFragment|DFragment,

初始条件:

              1. 不包含CFragment 实例(默认状态); 

              2. 打开开关,包含CFragment;

 

实验记录如下:

## 初始化(无CFragment,默认关闭)

I/FragmentHomeActivity: onCreate()
I/AFragment: onAttach()
I/FragmentHomeActivity: onAttachFragment()
I/AFragment: onCreate()
I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onHiddenChanged(true)
I/BFragment: onAttach()
I/FragmentHomeActivity: onAttachFragment()
I/BFragment: onCreate()
I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onHiddenChanged(true)
I/DFragment: onAttach()
I/FragmentHomeActivity: onAttachFragment()
I/DFragment: onCreate()
I/DFragment: onCreateView()
I/DFragment: onViewCreated()
I/DFragment: onActivityCreated()
I/DFragment: onViewStateRestored()
I/DFragment: onHiddenChanged(true)
I/AFragment: onHiddenChanged(false)
I/AFragment: onStart()
I/BFragment: onStart()
I/DFragment: onStart()
I/FragmentHomeActivity: onStart()
I/FragmentHomeActivity: onResume()
I/AFragment: onResume()
I/BFragment: onResume()
I/DFragment: onResume()
I/FragmentHomeActivity: onResumeFragments()
I/FragmentHomeActivity: onAttachedToWindow()

### A -> B, B -> D, D -> A

I/AFragment: onHiddenChanged(true)
I/BFragment: onHiddenChanged(false)

I/BFragment: onHiddenChanged(true)
I/DFragment: onHiddenChanged(false)

I/DFragment: onHiddenChanged(true)
I/AFragment: onHiddenChanged(false)

### 切换到后台

I/AFragment: onPause()
I/BFragment: onPause()
I/DFragment: onPause()
I/FragmentHomeActivity: onPause()
I/AFragment: onStop()
I/BFragment: onStop()
I/DFragment: onStop()
I/FragmentHomeActivity: onStop()
I/AFragment: onSaveInstanceState()
I/BFragment: onSaveInstanceState()
I/DFragment: onSaveInstanceState()
I/FragmentHomeActivity: onSaveInstanceState()

### 回到前台

I/FragmentHomeActivity: onRestart()
I/AFragment: onStart()
I/BFragment: onStart()
I/DFragment: onStart()
I/FragmentHomeActivity: onStart()
I/FragmentHomeActivity: onResume()
I/AFragment: onResume()
I/BFragment: onResume()
I/DFragment: onResume()
I/FragmentHomeActivity: onResumeFragments()

### 关闭页面(销毁Fragment)

I/AFragment: onPause()
I/BFragment: onPause()
I/DFragment: onPause()
I/FragmentHomeActivity: onPause()
I/AFragment: onStop()
I/BFragment: onStop()
I/DFragment: onStop()
I/FragmentHomeActivity: onStop()
I/AFragment: onDestroyView()
I/AFragment: onDestroy()
I/AFragment: onDetach()
I/BFragment: onDestroyView()
I/BFragment: onDestroy()
I/BFragment: onDetach()
I/DFragment: onDestroyView()
I/DFragment: onDestroy()
I/DFragment: onDetach()
I/FragmentHomeActivity: onDestroy()
I/FragmentHomeActivity: onDetachedFromWindow()

## 初始化(无CFragment,默认关闭)

I/FragmentHomeActivity: onCreate()
I/AFragment: onAttach()
I/FragmentHomeActivity: onAttachFragment()
I/AFragment: onCreate()
I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onHiddenChanged(true)
I/BFragment: onAttach()
I/FragmentHomeActivity: onAttachFragment()
I/BFragment: onCreate()
I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onHiddenChanged(true)
I/DFragment: onAttach()
I/FragmentHomeActivity: onAttachFragment()
I/DFragment: onCreate()
I/DFragment: onCreateView()
I/DFragment: onViewCreated()
I/DFragment: onActivityCreated()
I/DFragment: onViewStateRestored()
I/DFragment: onHiddenChanged(true)
I/AFragment: onHiddenChanged(false)
I/AFragment: onStart()
I/BFragment: onStart()
I/DFragment: onStart()
I/FragmentHomeActivity: onStart()
I/FragmentHomeActivity: onResume()
I/AFragment: onResume()
I/BFragment: onResume()
I/DFragment: onResume()
I/FragmentHomeActivity: onResumeFragments()
I/FragmentHomeActivity: onAttachedToWindow()

## 初始化(开启CFragment,打开开关,并切换到AFragment)

I/CFragment: onAttach()
I/FragmentHomeActivity: onAttachFragment()
I/CFragment: onCreate()
I/CFragment: onCreateView()
I/CFragment: onViewCreated()
I/CFragment: onActivityCreated()
I/CFragment: onViewStateRestored()
I/CFragment: onStart()
I/CFragment: onResume()
I/CFragment: onHiddenChanged(true)
I/AFragment: onHiddenChanged(true)
I/AFragment: onHiddenChanged(false)

### A -> B, B -> C, C -> D, D -> C, C -> B, B -> A

I/AFragment: onHiddenChanged(true)
I/BFragment: onHiddenChanged(false)
I/BFragment: onHiddenChanged(true)
I/CFragment: onHiddenChanged(false)
I/CFragment: onHiddenChanged(true)
I/DFragment: onHiddenChanged(false)
I/DFragment: onHiddenChanged(true)
I/CFragment: onHiddenChanged(false)
I/CFragment: onHiddenChanged(true)
I/BFragment: onHiddenChanged(false)
I/BFragment: onHiddenChanged(true)
I/AFragment: onHiddenChanged(false)

### 切换到后台

I/AFragment: onPause()
I/BFragment: onPause()
I/DFragment: onPause()
I/CFragment: onPause()
I/FragmentHomeActivity: onPause()
I/AFragment: onStop()
I/BFragment: onStop()
I/DFragment: onStop()
I/CFragment: onStop()
I/FragmentHomeActivity: onStop()
I/AFragment: onSaveInstanceState()
I/BFragment: onSaveInstanceState()
I/DFragment: onSaveInstanceState()
I/CFragment: onSaveInstanceState()
I/FragmentHomeActivity: onSaveInstanceState()

### 回到前台

I/FragmentHomeActivity: onRestart()
I/AFragment: onStart()
I/BFragment: onStart()
I/DFragment: onStart()
I/CFragment: onStart()
I/FragmentHomeActivity: onStart()
I/FragmentHomeActivity: onResume()
I/AFragment: onResume()
I/BFragment: onResume()
I/DFragment: onResume()
I/CFragment: onResume()
I/FragmentHomeActivity: onResumeFragments()

### 关闭页面(销毁Fragment)

I/AFragment: onPause()
I/BFragment: onPause()
I/DFragment: onPause()
I/CFragment: onPause()
I/FragmentHomeActivity: onPause()
I/AFragment: onStop()
I/BFragment: onStop()
I/DFragment: onStop()
I/CFragment: onStop()
I/FragmentHomeActivity: onStop()
I/AFragment: onDestroyView()
I/AFragment: onDestroy()
I/AFragment: onDetach()
I/BFragment: onDestroyView()
I/BFragment: onDestroy()
I/BFragment: onDetach()
I/DFragment: onDestroyView()
I/DFragment: onDestroy()
I/DFragment: onDetach()
I/CFragment: onDestroyView()
I/CFragment: onDestroy()
I/CFragment: onDetach()
I/FragmentHomeActivity: onDestroy()
I/FragmentHomeActivity: onDetachedFromWindow()



3.3 实验三:

有个FragmentHomeNoStateActivity 里包含 AFragment|BFragment|CFragment|DFragment,

初始条件:

              1. 默认缓存数量为1,默认设置显示为AFragment;

              2. 无开关;

实验记录如下:

## 初始化

I/FragmentHomeNoStateActivity: onCreate()
I/FragmentHomeNoStateActivity: onStart()
I/FragmentHomeNoStateActivity: onResume()
I/FragmentHomeNoStateActivity: onResumeFragments()
I/FragmentHomeNoStateActivity: onAttachedToWindow()
I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(true)
I/AFragment: onAttach()
I/FragmentHomeNoStateActivity: onAttachFragment()
I/AFragment: onCreate()
I/BFragment: onAttach()
I/FragmentHomeNoStateActivity: onAttachFragment()
I/BFragment: onCreate()
I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onStart()
I/AFragment: onResume()
I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onStart()
I/BFragment: onResume()
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.0,positionOffsetPixels: 0)

### A -> B, B -> C, C -> D

I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.0055555557,positionOffsetPixels: 4)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.07638889,positionOffsetPixels: 55)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.13472222,positionOffsetPixels: 97)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.20972222,positionOffsetPixels: 151)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.31666666,positionOffsetPixels: 228)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.37361112,positionOffsetPixels: 269)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeNoStateActivity: onPageSelected(position: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.44166666,positionOffsetPixels: 318)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.5416667,positionOffsetPixels: 390)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.62083334,positionOffsetPixels: 447)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.69305557,positionOffsetPixels: 499)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.75416666,positionOffsetPixels: 543)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.80277777,positionOffsetPixels: 578)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.84444445,positionOffsetPixels: 608)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.87916666,positionOffsetPixels: 633)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.90694445,positionOffsetPixels: 653)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9291667,positionOffsetPixels: 669)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.94722223,positionOffsetPixels: 682)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9611111,positionOffsetPixels: 692)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9722222,positionOffsetPixels: 700)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.98055553,positionOffsetPixels: 706)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9861111,positionOffsetPixels: 710)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9916667,positionOffsetPixels: 714)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.99444443,positionOffsetPixels: 716)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.99722224,positionOffsetPixels: 718)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.9986111,positionOffsetPixels: 719)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 0)
I/CFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(true)
I/CFragment: onAttach()
I/FragmentHomeNoStateActivity: onAttachFragment()
I/CFragment: onCreate()
I/CFragment: onCreateView()
I/CFragment: onViewCreated()
I/CFragment: onActivityCreated()
I/CFragment: onViewStateRestored()
I/CFragment: onStart()
I/CFragment: onResume()
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.008333325,positionOffsetPixels: 5)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.08472228,positionOffsetPixels: 61)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.17638886,positionOffsetPixels: 126)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.3138889,positionOffsetPixels: 226)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.43055558,positionOffsetPixels: 310)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.5694444,positionOffsetPixels: 409)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.57916665,positionOffsetPixels: 417)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeNoStateActivity: onPageSelected(position: 2)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.5958333,positionOffsetPixels: 428)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.7180556,positionOffsetPixels: 517)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.8083333,positionOffsetPixels: 581)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.8736111,positionOffsetPixels: 629)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.92222226,positionOffsetPixels: 664)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.95277774,positionOffsetPixels: 686)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.9736111,positionOffsetPixels: 701)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.98611116,positionOffsetPixels: 710)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.9930556,positionOffsetPixels: 715)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.9972222,positionOffsetPixels: 718)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.9986111,positionOffsetPixels: 719)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 0)
I/DFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(false)
I/CFragment: setUserVisibleHint(true)
I/DFragment: onAttach()
I/FragmentHomeNoStateActivity: onAttachFragment()
I/DFragment: onCreate()
I/AFragment: onPause()
I/AFragment: onStop()
I/AFragment: onDestroyView()
I/DFragment: onCreateView()
I/DFragment: onViewCreated()
I/DFragment: onActivityCreated()
I/DFragment: onViewStateRestored()
I/DFragment: onStart()
I/DFragment: onResume()
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.05138898,positionOffsetPixels: 37)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.17361116,positionOffsetPixels: 125)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.31805563,positionOffsetPixels: 229)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.36944437,positionOffsetPixels: 265)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeNoStateActivity: onPageSelected(position: 3)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.4361112,positionOffsetPixels: 314)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.6291666,positionOffsetPixels: 452)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.76666665,positionOffsetPixels: 552)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.85416675,positionOffsetPixels: 615)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.91666675,positionOffsetPixels: 660)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.95555544,positionOffsetPixels: 687)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.9777777,positionOffsetPixels: 703)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.99027777,positionOffsetPixels: 713)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.9958334,positionOffsetPixels: 717)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.9986112,positionOffsetPixels: 719)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 3,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 0)
I/CFragment: setUserVisibleHint(false)
I/DFragment: setUserVisibleHint(true)
I/BFragment: onPause()
I/BFragment: onStop()
I/BFragment: onDestroyView()

### D -> C, C -> B, B -> A

I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.9986112,positionOffsetPixels: 719)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.94583344,positionOffsetPixels: 681)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.88472223,positionOffsetPixels: 637)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.7486112,positionOffsetPixels: 539)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.5999999,positionOffsetPixels: 431)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.44583344,positionOffsetPixels: 321)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.4041667,positionOffsetPixels: 291)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeNoStateActivity: onPageSelected(position: 2)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.2805555,positionOffsetPixels: 201)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.16111112,positionOffsetPixels: 116)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.08888888,positionOffsetPixels: 63)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.04444456,positionOffsetPixels: 32)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.019444466,positionOffsetPixels: 14)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.006944418,positionOffsetPixels: 4)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.0027778149,positionOffsetPixels: 2)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 2,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 0)
I/BFragment: setUserVisibleHint(false)
I/DFragment: setUserVisibleHint(false)
I/CFragment: setUserVisibleHint(true)
I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onStart()
I/BFragment: onResume()
    
    --------- beginning of system
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.9916667,positionOffsetPixels: 714)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.9458333,positionOffsetPixels: 681)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.82777774,positionOffsetPixels: 596)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.7208333,positionOffsetPixels: 519)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.5875,positionOffsetPixels: 422)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.5069444,positionOffsetPixels: 364)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeNoStateActivity: onPageSelected(position: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.4944445,positionOffsetPixels: 356)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.31944442,positionOffsetPixels: 229)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.19166672,positionOffsetPixels: 138)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.10833335,positionOffsetPixels: 78)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.059722185,positionOffsetPixels: 42)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.029166698,positionOffsetPixels: 21)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.012500048,positionOffsetPixels: 9)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.0041667223,positionOffsetPixels: 3)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.0013889074,positionOffsetPixels: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 1,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 0)
I/AFragment: setUserVisibleHint(false)
I/CFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(true)
I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/DFragment: onPause()
I/DFragment: onStop()
I/DFragment: onDestroyView()
I/AFragment: onStart()
I/AFragment: onResume()
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.94027776,positionOffsetPixels: 677)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.81666666,positionOffsetPixels: 588)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.6666667,positionOffsetPixels: 480)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.5152778,positionOffsetPixels: 371)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeNoStateActivity: onPageSelected(position: 0)
I/BFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(true)
I/CFragment: onPause()
I/CFragment: onStop()
I/CFragment: onDestroyView()
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.36527777,positionOffsetPixels: 263)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.18472221,positionOffsetPixels: 133)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.083333336,positionOffsetPixels: 60)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.034722224,positionOffsetPixels: 25)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.011111111,positionOffsetPixels: 8)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.0027777778,positionOffsetPixels: 2)
I/FragmentHomeNoStateActivity: onPageScrolled(position: 0,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeNoStateActivity: onPageScrollStateChanged(state: 0)

### 切换到后台

I/BFragment: onPause()
I/AFragment: onPause()
I/FragmentHomeNoStateActivity: onPause()
I/BFragment: onStop()
I/AFragment: onStop()
I/FragmentHomeNoStateActivity: onStop()
I/AFragment: onSaveInstanceState()
I/BFragment: onSaveInstanceState()
I/CFragment: onSaveInstanceState()
I/DFragment: onSaveInstanceState()
I/FragmentHomeNoStateActivity: onSaveInstanceState()

### 回到前台

I/FragmentHomeNoStateActivity: onRestart()
I/BFragment: onStart()
I/AFragment: onStart()
I/FragmentHomeNoStateActivity: onStart()
I/FragmentHomeNoStateActivity: onResume()
I/BFragment: onResume()
I/AFragment: onResume()
I/FragmentHomeNoStateActivity: onResumeFragments()

### 关闭页面(销毁Activity和Fragment)

I/BFragment: onPause()
I/AFragment: onPause()
I/FragmentHomeNoStateActivity: onPause()
I/BFragment: onStop()
I/AFragment: onStop()
I/FragmentHomeNoStateActivity: onStop()
I/BFragment: onDestroyView()
I/BFragment: onDestroy()
I/BFragment: onDetach()
I/AFragment: onDestroyView()
I/AFragment: onDestroy()
I/AFragment: onDetach()
I/CFragment: onDestroy()
I/CFragment: onDetach()
I/DFragment: onDestroy()
I/DFragment: onDetach()
I/FragmentHomeNoStateActivity: onDestroy()
I/FragmentHomeNoStateActivity: onDetachedFromWindow()


3.4 实验四:

有个FragmentHomeStateActivity 里包含 AFragment|BFragment|CFragment|DFragment,

初始条件:

              1. 默认缓存数量为1,默认设置显示为AFragment;

              2. 无开关;

实验记录如下:

## 初始化

I/FragmentHomeStateActivity: onCreate()
I/FragmentHomeStateActivity: onStart()
I/FragmentHomeStateActivity: onResume()
I/FragmentHomeStateActivity: onResumeFragments()
I/FragmentHomeStateActivity: onAttachedToWindow()
I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(true)
I/AFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/AFragment: onCreate()
I/BFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/BFragment: onCreate()
I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onStart()
I/AFragment: onResume()
I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onStart()
I/BFragment: onResume()
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.0,positionOffsetPixels: 0)


### A -> B, B -> C, C -> D

I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.0013888889,positionOffsetPixels: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.1125,positionOffsetPixels: 81)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.43472221,positionOffsetPixels: 313)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.53333336,positionOffsetPixels: 384)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeStateActivity: onPageSelected(position: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.6472222,positionOffsetPixels: 466)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.8888889,positionOffsetPixels: 640)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.9736111,positionOffsetPixels: 701)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.99722224,positionOffsetPixels: 718)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 0)
I/CFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(true)
I/CFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/CFragment: onCreate()
I/CFragment: onCreateView()
I/CFragment: onViewCreated()
I/CFragment: onActivityCreated()
I/CFragment: onViewStateRestored()
I/CFragment: onStart()
I/CFragment: onResume()
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.0625,positionOffsetPixels: 45)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.42916667,positionOffsetPixels: 309)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.5055555,positionOffsetPixels: 363)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeStateActivity: onPageSelected(position: 2)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.7777778,positionOffsetPixels: 560)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.92083335,positionOffsetPixels: 663)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.9791666,positionOffsetPixels: 705)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.9972222,positionOffsetPixels: 718)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 0)
I/AFragment: onSaveInstanceState()
I/DFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(false)
I/CFragment: setUserVisibleHint(true)
I/DFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/DFragment: onCreate()
I/AFragment: onPause()
I/AFragment: onStop()
I/AFragment: onDestroyView()
I/AFragment: onDestroy()
I/AFragment: onDetach()
I/DFragment: onCreateView()
I/DFragment: onViewCreated()
I/DFragment: onActivityCreated()
I/DFragment: onViewStateRestored()
I/DFragment: onStart()
I/DFragment: onResume()
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.14583325,positionOffsetPixels: 104)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.42777777,positionOffsetPixels: 308)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.5250001,positionOffsetPixels: 378)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeStateActivity: onPageSelected(position: 3)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.73333335,positionOffsetPixels: 528)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.92222214,positionOffsetPixels: 663)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.98472214,positionOffsetPixels: 708)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.9986112,positionOffsetPixels: 719)
I/FragmentHomeStateActivity: onPageScrolled(position: 3,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 0)
I/BFragment: onSaveInstanceState()
I/CFragment: setUserVisibleHint(false)
I/DFragment: setUserVisibleHint(true)
I/BFragment: onPause()
I/BFragment: onStop()
I/BFragment: onDestroyView()
I/BFragment: onDestroy()
I/BFragment: onDetach()


### D -> C, C -> B, B -> A

I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.89861107,positionOffsetPixels: 647)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.60555553,positionOffsetPixels: 436)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.64583325,positionOffsetPixels: 464)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeStateActivity: onPageSelected(position: 2)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.54583335,positionOffsetPixels: 393)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.35416675,positionOffsetPixels: 255)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.2208333,positionOffsetPixels: 158)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.12638879,positionOffsetPixels: 90)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.070833445,positionOffsetPixels: 51)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.036111116,positionOffsetPixels: 26)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.015277863,positionOffsetPixels: 11)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.006944418,positionOffsetPixels: 4)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.0013887882,positionOffsetPixels: 0)
I/FragmentHomeStateActivity: onPageScrolled(position: 2,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 0)
I/BFragment: setUserVisibleHint(false)
I/DFragment: setUserVisibleHint(false)
I/CFragment: setUserVisibleHint(true)
I/BFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/BFragment: onCreate()
I/BFragment: onCreateView()
I/BFragment: onViewCreated()
I/BFragment: onActivityCreated()
I/BFragment: onViewStateRestored()
I/BFragment: onStart()
I/BFragment: onResume()
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.96111107,positionOffsetPixels: 692)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.86388886,positionOffsetPixels: 622)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.70000005,positionOffsetPixels: 504)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.5555556,positionOffsetPixels: 400)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeStateActivity: onPageSelected(position: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.39583337,positionOffsetPixels: 285)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.22361112,positionOffsetPixels: 161)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.11249995,positionOffsetPixels: 80)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.049999952,positionOffsetPixels: 35)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.020833373,positionOffsetPixels: 15)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.006944418,positionOffsetPixels: 4)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.0013889074,positionOffsetPixels: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 1,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 0)
I/AFragment: setUserVisibleHint(false)
I/DFragment: onSaveInstanceState()
I/CFragment: setUserVisibleHint(false)
I/BFragment: setUserVisibleHint(true)
I/AFragment: onAttach()
I/FragmentHomeStateActivity: onAttachFragment()
I/AFragment: onCreate()
I/DFragment: onPause()
I/DFragment: onStop()
I/DFragment: onDestroyView()
I/DFragment: onDestroy()
I/DFragment: onDetach()
I/AFragment: onCreateView()
I/AFragment: onViewCreated()
I/AFragment: onActivityCreated()
I/AFragment: onViewStateRestored()
I/AFragment: onStart()
I/AFragment: onResume()
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.92777777,positionOffsetPixels: 668)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.7375,positionOffsetPixels: 531)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.36666667,positionOffsetPixels: 264)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.3513889,positionOffsetPixels: 253)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 2)
I/FragmentHomeStateActivity: onPageSelected(position: 0)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.20972222,positionOffsetPixels: 151)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.06666667,positionOffsetPixels: 48)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.013888889,positionOffsetPixels: 10)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.0013888889,positionOffsetPixels: 1)
I/FragmentHomeStateActivity: onPageScrolled(position: 0,positionOffset: 0.0,positionOffsetPixels: 0)
I/FragmentHomeStateActivity: onPageScrollStateChanged(state: 0)
I/CFragment: onSaveInstanceState()
I/BFragment: setUserVisibleHint(false)
I/AFragment: setUserVisibleHint(true)
I/CFragment: onPause()
I/CFragment: onStop()
I/CFragment: onDestroyView()
I/CFragment: onDestroy()
I/CFragment: onDetach()


### 切换到后台

I/BFragment: onPause()
I/AFragment: onPause()
I/FragmentHomeStateActivity: onPause()
I/BFragment: onStop()
I/AFragment: onStop()
I/FragmentHomeStateActivity: onStop()
I/BFragment: onSaveInstanceState()
I/AFragment: onSaveInstanceState()
I/FragmentHomeStateActivity: onSaveInstanceState()


### 回到前台

I/FragmentHomeStateActivity: onRestart()
I/BFragment: onStart()
I/AFragment: onStart()
I/FragmentHomeStateActivity: onStart()
I/FragmentHomeStateActivity: onResume()
I/BFragment: onResume()
I/AFragment: onResume()
I/FragmentHomeStateActivity: onResumeFragments()

### 关闭页面(销毁Activity和Fragment)

I/BFragment: onPause()
I/AFragment: onPause()
I/FragmentHomeStateActivity: onPause()
I/BFragment: onStop()
I/AFragment: onStop()
I/FragmentHomeStateActivity: onStop()
I/BFragment: onDestroyView()
I/BFragment: onDestroy()
I/BFragment: onDetach()
I/AFragment: onDestroyView()
I/AFragment: onDestroy()
I/AFragment: onDetach()
I/FragmentHomeStateActivity: onDestroy()
I/FragmentHomeStateActivity: onDetachedFromWindow()

(完)

发布了66 篇原创文章 · 获赞 17 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/DovSnier/article/details/103254343