как вызвать suspend функцию из Сервиса Андроид?
Обычно фрагменты или вьювмодели дают нам scope,
viewModelScope.launch {
withContext(Dispatchers.IO) {
***suspend...***
}
}
есть ли подобное в Сервисах или как вызвать suspend функцию из сервиса?
Ответы (1 шт):
Автор решения: IR42
→ Ссылка
Можно подключить библиотеку "androidx.lifecycle:lifecycle-service:$lifecycle_version" и наследоваться от LifecycleService, тогда появится свойство lifecycleScope. Либо можно создать свой CoroutineScope:
class MyService : Service() {
val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
override fun onDestroy() {
scope.cancel()
super.onDestroy()
}
}