我正在调查一个奇怪的问题,我们将androidx.appcompat:appcompat
从1.3.1
更改为1.4.1
后,突然间我们的LifecycleObservers
观察到的进程生命周期不再发出任何事件。
我还使用了"androidx.lifecycle:lifecycle-extensions:2.2.0"
,我知道这已经过时了,但如果appcompat是1.3.1
,它可以无缝运行。
我已在清单中设置了正确的应用程序名称,并根据文档要求包含了此提供程序。
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
tools:node="remove" />
初始化的例子,但它不起作用。这个对象被注入到Application
类中,并且添加了生命周期观察者,但是onStart
和onStop
从未被调用。
class AppLifecycle @Inject constructor(
private val foregroundProxy: AppLifecycleProxy
) : LifecycleObserver {
init {
ProcessLifecycleOwner.get().lifecycle.addObserver(this)
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onStart() {
foregroundProxy.onStarted()
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun onStop() {
foregroundProxy.onStopped()
}
}
编辑: 根据@EpicPandaForce的评论,将清单中的提供程序块更改为:
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities=\"${applicationId}.androidx-startup"
android:exported="false"
tools:node=\"merge">
<!-- If you are using androidx.startup to initialize other components -->
<meta-data
android:name="androidx.lifecycle.ProcessLifecycleInitializer"
android:value="androidx.startup"
tools:node="remove" />
</provider>
将依赖项"androidx.lifecycle:lifecycle-extensions:2.2.0"
替换为"androidx.lifecycle:lifecycle-common:2.4.1"
已解决此问题。
1.6.0-alpha01
版本吗? - F.Mysir