LifecycleService和Service类有什么区别?

16

我一直在阅读Android开发者页面上的文档,但除了一个继承自Service并实现LifecycleOwner接口,另一个继承自ContextWrapper的事实外,我无法理解何时使用其中之一...这两个组件都有相同的作用吗?

1个回答

23

LifecycleService提供了额外的功能,所以如果你需要这些功能,它是首选。

LifecycleOwner允许其他类订阅其生命周期状态。例如,您的应用程序中的某个组件可以通过订阅Service的销毁生命周期阶段自动拆除自身、释放本地内存、取消注册监听器等等。然后,您的Service代码就不必再担心这些问题了。

在LifecycleService中还可以使用lifecycleScope,并且可以用它来启动协程,在Service停止时会自动取消。

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


使用MVVM是最佳实践吗?我想听听您的意见。 - Dio Lantief Widoyoko
无论设计模式如何,拥有一个生命周期协程作用域都是很方便的,但仅当您的服务需要并行处理时才需要。 - Tenfour04
但是普通服务已经有onDestroy方法了,我们可以在那里释放资源,这有什么不同吗? - Jazib Khan
3
它允许其他类订阅这些生命周期变化。你可以拥有一个类,在服务被销毁时自动拆除它自己,而不需要在你的服务的 onDestroy() 方法中手动调用一个方法来销毁它。 - Tenfour04

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接