登录

去注册

登录

注册

去登录

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

每日一问 LifeCycle 对于 Lifecycle.Event 为啥不直接分发,而是通过 Lifecycle.State 中转?

xiaoyang   2020-04-19 14:42   收藏

看过LifeCycle源码的同学可能都能说出来:

LifeCycle 利用 Fragment,进行 Event 分发,然后通过反射执行各个 LifecycleObserver 中对应的Event 注册方法。

其中还引入了一个 State 的概念,那么为什么不 Fragment dispatch Event的时候直接执行到 Observer 里面的相关事件方法, 而要经过一个 State 的概念呢?

参考入口,类名:ReportFragment

#ReportFragment
@Override
public void onActivityCreated(Bundle savedInstanceState) {
     super.onActivityCreated(savedInstanceState);
     dispatchCreate(mProcessListener);
     dispatch(Lifecycle.Event.ON_CREATE);
}

删除留言

确认删除留言,会导致相关评论丢失?

取消 确定