При использовании Kotlin Coroutines лучше всего использовать GlobalScope.launch () или наследовать GlobalScope? - PullRequest
0 голосов
/ 06 февраля 2019

Я видел два разных использования сопрограмм в моей компании, и мне интересно, какое из них лучше?

Использование 1

GlobalScope.launch(Dispatchers.IO) {
    loadMyData()
}

Использование 2

class MyClass(): GlobalScope {
. . .
    launch(Dispatchers.IO){
        loadMyData()
    }
. . . 
}

Один лучше другого?Каковы плюсы и минусы каждого?

1 Ответ

0 голосов
/ 20 февраля 2019

Есть и третий вариант

class MyClass(): CoroutineScope by GlobalScope

Но есть простой вопрос, который вы должны задать при рассмотрении вопроса о том, как его реализовать: хотите ли вы, чтобы MyClass был CoroutineScope, который можно было бы использоватьдругими частями кодовой базы?

В большинстве случаев ответ должен быть отрицательным, и поэтому может быть лучше использовать GlobalScope напрямую.

Также я предполагаю, GlobalScope - это область, которую следует использовать здесь, а не вдаваться в подробности того, почему не стоит ее использовать.

...