从 LifeCycleService 观察 LiveData

Observe LiveData from LifeCycleService

我正在使用 google android 架构组件并且我有一个前台服务,它是 LifeCycleService。

问题是当我尝试从我的存储库观察 LiveData 时,可观察的 onChanged 不会触发。如果我使用 observeForever 而不是 observe 它会触发。

什么会导致这样的问题?

原来我在没有调用 super.onBind 的情况下覆盖了 onBind,这并没有触发 LifeCycleService 进入 STARTED 状态。这意味着我的观察者总是不活跃

任何使用 repeatOnLifecycle() 来观察 LifecycleService 内部流程的人,一定要使用 Lifecycle.State.STARTED。像我们对活动或片段所做的那样使用恢复将永远不会触发流收集。