当碎片第一次被加载到屏幕上时,会依次执行onAttach(),onCreate(),onCreateView(),onActivityCreated(),onStart()和onResume()方法。
当点击按钮切换到下一张图片时,第二张将第一张图片覆盖掉,此时用户看不到第一张图片,第一个碎片进入了停止状态。因此onPause(),onStop()和onDestroyView()方法会得到执行。当然如果在替换的时候没有调用addTobackStack()方法,此时第一个碎片就会进入销毁状态,onDestroy()和onDetach()方法就会得到执行。
接着按下Back键,第一个图片就会重新回到屏幕,由于第一个碎片重新回到了运行状态,因此onCreateView(),onActivityCreated(),onSart()和onResume()方法会得到执行。注意此时onCreate()方法不会执行,因为我们借助了addToBackStack()方法使得第一个碎片并没有被销毁。
再次按下Back键后,依次会执行onPause(),onStop(),onDestroyView()onDestroy()和onDetach()方法,最终将碎片销毁掉。
另外值得一提的是,在碎片中你也是可以通过onSaveInstanceState()方法来保存数据的,因为进入停止状态的碎片有可能在系统内存不足的时候被回收。保存下来的数据在onCreate(),onCreateView()和onActivityCreated()这3个方法中都可以重新得到,他们都含有一个Bundle类型的savedInstanceState参数。