【发布时间】:2021-04-09 16:04:09
【问题描述】:
我是 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 做了同样的事情。
我希望在应用程序中做同样的事情,有人有什么建议吗?
【问题讨论】:
-
为了更好地理解,请问您的方案是什么,从
App类中的后端获取数据?为什么 Activity 或 Fragment 不适合您? -
它用于获取整个应用生命周期所需的用户偏好,不限于任何活动。
-
我明白了,谢谢。
App类的问题在于它没有像 Activity 这样的适当生命周期。因此,如果您需要,您无法像在 Activity 中那样正确取消您的请求。您是否考虑过单一活动方法,您是否可以这样做?老实说,我不知道您的方案的最佳实践是什么。我通常避免在App类中做任何复杂的逻辑。
标签: android kotlin kotlin-coroutines kotlin-android-extensions android-ktx