"Android 架构建议' 阅读以下:

生命周期
不要覆盖生命周期方法,例如在线在活动或片段中。生命周期观察者如果应用程序需要在生命周期达到某个特定值时执行工作生命周期.状态,使用 repeatOnLifecycle API。

首先onResume是Android中主要的生命周期之一,另外还有onCreateonStart,而这次重写这个生命周期方法基本上是弃用了(强力推荐)成为。

为什么它首先被弃用?

上面的一句话说“不要覆盖。改用LifecycleObserver。”

换句话说,不推荐使用以下描述的部分,

override fun onResume() {
    super.onResume()
    textview.text = "hoge"
}

如样本生命周期观察者用于接收生命周期状态的变化。

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    viewLifecycleOwner.lifecycle.addObserver(object: DefaultLifecycleObserver {
        override fun onResume(owner: LifecycleOwner) {
            textview.text = "hoge"
        }
    }
}

为什么首先使用观察者?

"使用生命周期感知组件处理生命周期'上面写着以下内容:

此外,不能保证组件在活动或片段停止之前启动。如果我们需要执行长时间运行的操作,尤其如此,例如onStart()中的一些配置检查。onStop()方法在@之前完成987654329@,使组件的存活时间超过所需时间。

这意味着活动或片段在组件启动之前停止的可能性或组件中的竞争条件将使其运行时间超过应有的时间。

换句话说,在下面的示例中,如果根据状态变化按顺序调用 onStop -> onStart,myLocationListener.start() 将继续执行。

public override fun onStart() {
    super.onStart()
    myLocationListener.start()
    // manage other components that need to respond
    // to the activity lifecycle
}

public override fun onStop() {
    super.onStop()
    myLocationListener.stop()
    // manage other components that need to respond
    // to the activity lifecycle
}

所以我明白建议使用LifecycleObserver 来解决上述问题。

就这样。
欢迎任何其他想法,所以请发表评论。


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308631974.html

相关文章:

  • 2021-09-07
  • 2021-11-01
  • 2021-12-10
  • 2021-11-02
  • 2021-09-07
  • 2020-03-10
  • 2018-09-19
  • 2021-11-01
猜你喜欢
  • 2022-01-17
  • 2021-09-27
  • 2021-09-07
  • 2021-09-07
  • 2021-11-28
  • 2021-12-29
  • 2022-01-07
  • 2021-09-07
相关资源
相似解决方案