LifecycleService 和 Service 类有什么区别?

Tar*_*nga 3 android kotlin

我一直在阅读 Android 开发人员页面上的文档,但除了一个从 Service 扩展并实现 LifecycleOwner 和另一个扩展 ContextWrapper 的事实之外,我一直无法理解何时使用其中一个。同样的目的?

Ten*_*r04 5

LifecycleService 具有附加功能,因此如果您需要该功能,则首选它。

LifecycleOwner 允许其他类订阅其生命周期状态。例如,您的应用程序中的某些组件可以通过订阅服务的销毁生命周期阶段来自动拆除自身、释放本机内存、取消注册侦听器等。那么您的服务代码就不必担心了。

您还可以访问lifecycleScopeLifecycleService,可用于启动协程,当服务停止时,协程将自动取消。

ViewModel 和 LiveData 是围绕生命周期的使用而设计的,因此理论上您可以将它们与 LifecycleService 一起使用,但这可能会适得其反,因为它们是用于 UI 的。

  • @JazibKhan 它允许其他类订阅这些生命周期更改。您可以有一个类,当服务被销毁时,该类会自动自行拆除,而不需要您在服务的“onDestroy()”中手动调用它的方法来销毁它。 (3认同)