我在公司看到过两种不同的Coroutines用途,我想知道哪种用途最好?
用法1
GlobalScope.launch(Dispatchers.IO) {
loadMyData()
}
用法2
class MyClass(): GlobalScope {
. . .
launch(Dispatchers.IO){
loadMyData()
}
. . .
}
这个比那个好吗?各自的优点和缺点是什么?
还有第三种选择
class MyClass(): CoroutineScope by GlobalScope
但是在考虑如何实现它时,你应该问一个简单的问题:你是否希望MyClass
成为一个CoroutineScope
,它也可以被代码库的其他部分使用?
大多数时候答案应该是否定的,因此最好直接使用GlobalScope
。
另外我假设,GlobalScope
是在这里使用的范围,而不是详细说明为什么不考虑使用它。