Activity正常生命周期
Activity异常生命周期
UI结构图
Fragment生命周期
Activity和Fragment生命周期对比
执行顺序: onCreate过程: Activity->onCreate() Fragement->onAttach() Fragment->onCreate() Fragment->onCreateView() Fragment->onActivityCreated()
onStart过程: Activity->onStart() Fragment->onStart()
onResume过程: Activity->onResume() Fragment->onResume()
onPause过程: Fragment->onPause() Activity->onPause()
onStop过程: Fragment->onStop() Activity->onStop()
onDestroy过程: Fragment->onDestroyView() Fragment->onDestroy() Fragment->onDetach() Activity->onDestroy()
Fragment比Activity多了几个生命周期: (1)onAttach():当Fragment与Activity发生关联时调用,通过该方法可以与Activity互相传递数据,一般是给Fragment添加回调接口,让Activity实现接口 (2)onCreateView():当Fragment视图被创建时调用 (3)onActivityCreated():当Activity的onCreate()方法返回时调用 (4)onDestroyView():当Fragment视图被移除时调用 (5)onDetach():当Fragment与Activity取消关联时调用
注意:除了onCreateView()方法,其他的方法如果重写了,必须调用父类对于该方法的实现
public MyFragment extends Fragment { private CallbackListener mListener; public interface CallbackListener { // …. } @Override public void onAttach(Context context) { if (context instanceof CallbackListener) { mListener = (CallbackListener) context; } else { throw new RuntimeException(context.toString() + “must implements listener”); } super.onAttach(context); } @Override public void onDetach() { super.onDetach(); mListener = null; } } public MyActivity extends AppCompatActivity implements MyFragment. CallbackListener { // ….. }