【问题标题】:Custom View receives Activity/Fragment lifecycle callbacks?自定义视图接收 Activity/Fragment 生命周期回调?
【发布时间】:2018-10-15 15:55:49
【问题描述】:

我正在开发将用作普通 android 视图组件的自定义视图。是否可以在内部处理主机(活动/片段)生命周期状态?

我的目标是避免最终用户(开发人员)覆盖每个生命周期回调,以便将状态与我的视图同步,例如:

@Override
protected void onStop() {
    super.onStop();
    if (myCustomView != null) {
        myCustomView.onStop();
    }
}

【问题讨论】:

  • 首先super.onStop() 应该是你对这个方法的最后声明
  • Dennis,感谢您的评论,但这只是伪代码,所以此时顺序并不那么重要。
  • 相信我,确实如此。 :) 总有一天你会意识到的。

标签: android layout view activity-lifecycle


【解决方案1】:

如果你使用Architecture Components你可以实现LifecycleObserver接口,那么:

  1. 使用 @OnLifecycleEvent(Lifecycle.Event.ON_STOP) 注释视图的 onStop() 方法
  2. 在视图的构造函数中注册观察者:((LifecycleOwner)context).getLifecycle().addObserver(this)

【讨论】:

  • 嗯,这是一种方法,但我正在尝试创建不依赖于其他第三方组件的视图。
  • 是的,这看起来很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 1970-01-01
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
  • 2013-04-06
相关资源
最近更新 更多