Kotlin 如何从 android.app.Application 启动异步处理

问题描述

我是 Kotlin 的新手,并尝试在 android.app.Application

内启动异步后端调用
import android.app.Application;

class App: Application {

  override fun onCreate() {
    super.onCreate()
    fetchDataFromBackend()
  }

  fun fetchDataFromBackend() {
    lifecycleScope.launch {
      // Fetches data from backed.
    }
  }
}

问题是 lifecycleScope.launch 不能从应用程序中使用,我已经从 Activity/Fragments 和 viewmodelScope 为我的 viewmodel 做了同样的事情。

我想在应用程序中做同样的事情,有人有什么建议吗?

解决方法

您可以使用 ProcessLifecycleOwner,它与 Application 对象具有相同的生命周期。

ProcessLifecycleOwner.get().lifecycleScope.launch {
  // Fetches data from backend
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...