Activity和Fragmet生命周期

    xiaoxiao2023-11-10  154

    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 { // ….. }
    最新回复(0)