【发布时间】:2023-01-14 05:10:56
【问题描述】:
我已经在我的 Application 类中实现了 LifecycleObserver 并且它之前没有问题。现在我需要添加 WorkManager worker 并使用 hilt 注入它们,所以我在我的 AndroidManifest.xml 文件中有这个,供 worker 使用 Hilt。
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
tools:node="remove">
</provider>
将此添加到我的清单文件后,不会触发我的应用程序类中 LifecycleObserver 的回调。我知道这两者一起工作可能会有一些冲突,但我还没有找到任何解决方案来完成这项工作。
应用类
@HiltAndroidApp
class Application : CustomLocalizationApplication(), LifecycleObserver, androidx.work.Configuration.Provider {
override fun onCreate() {
super.onCreate()
...
ProcessLifecycleOwner.get().lifecycle.addObserver(this)
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onMoveToForeground() {
// app moved to foreground
// not called anymore after adding code snippet in Manifest
playerBackgroundController.resume()
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun onMoveToBackground() {
// app moved to background
// not called anymore after adding code snippet in Manifest
playerBackgroundController.pauseIfBackground()
}
override fun getWorkManagerConfiguration(): androidx.work.Configuration {
return androidx.work.Configuration.Builder()
.setMinimumLoggingLevel(Log.INFO)
.setWorkerFactory(workerFactory)
.build()
}
}
【问题讨论】:
标签: android android-lifecycle dagger-hilt