本文共 968 字,大约阅读时间需要 3 分钟。
一、碎片的生命周期
1、碎片和活动一样,也有四种状态,分别是:运行状态、暂停状态、停止状态和销毁状态。
2、活动有的回调方法,碎片中除了没有onRestart()的,其他的都有,除此之外,碎片还有一些回调方法,如下:
(1)、onAttach():当碎片和活动建立关联的时候调用。
(2)、onCreateView():为碎片创建视图(即加载布局)时调用。
(3)、onActivityCreated():确保与碎片想关联的活动已经创建的时候调用。
(4)、onDestroyView():当与碎片关联的视图移除的时候调用。
(5)、onDetach():当碎片与活动解除关联的时候调用。
3、碎片完整的生命周期,如图:
4、当停止状态的碎片,由于系统内存不足被回收时,我们可以通过onSaveInstanceState()方法来保存数据,保存下来的数据在onCreate(),onCreateView()和onActivityCreated(),这三方法中都可以重新得到,他们都含有一个Bundle类型的savedInstanceState参数,这个参数在一般情况下是null,但是当活动被系统回收之前如果通过onSaveInstanceState()方法保存了数据的话,这个参数就会带有之前所保存的全部数据,如下:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState != null) { String tempData = savedInstanceState.getString("key"); } } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); String tempData = "要保存的数据"; outState.putString("key", tempData); }