TransWikia.com

как вызвать suspend функцию из Сервиса Андроид?

Stack Overflow на русском Asked by Nurseyit Tursunkulov on February 9, 2021

Обычно фрагменты или вьювмодели дают нам scope,

viewModelScope.launch {
        withContext(Dispatchers.IO) {
        ***suspend...***
        }
 }

есть ли подобное в Сервисах или как вызвать suspend функцию из сервиса?

One Answer

Можно подключить библиотеку "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()
    }
}

Answered by IR42 on February 9, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP