创建Application时未调用LifecycleObserver.onCreate

sco*_*yab 6 android application-lifecycle android-lifecycle

我们有一个在创建应用程序时运行的任务,并且我们尝试将代码从应用程序对象的 onCreate 移动到它们自己的生命周期感知类。我已将ApplicationLifecycleAwareTaskRunner(a ) 添加到inLifecycleObserver的生命周期中,但它从未被调用。和被按预期调用。ProcessLifecycleOwnerApplication.onCreate()onCreate(owner: LifecycleOwner)onStart(..)onStop()

LifecycleObserver这是它无法观察事件的已知限制吗Application.onCreate()?或者我在这里缺少什么?

使用androidx.lifecycle:lifecycle-runtime-ktx:2.4.1

在应用程序对象中添加观察者。

class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        // DI and other init

       ProcessLifecycleOwner.get().lifecycle.addObserver(ApplicationLifecycleAwareTaskRunner(..))
    }
}
Run Code Online (Sandbox Code Playgroud)

任务运行者:

class ApplicationLifecycleAwareTaskRunner(
    private val appCoroutineScope: CoroutineScope,
    private val myTask: MyTask
) : DefaultLifecycleObserver {

    // This is never called :( 
    override fun onCreate(owner: LifecycleOwner) {
        appCoroutineScope.launch {
            myTask.invoke()
        }
    }
...
}
Run Code Online (Sandbox Code Playgroud)