讀到Dispatcher有種越來越難的感覺QQ
這些太高深的東西對於小萌新來說真的好殺熱情阿
估計今天是Coroutiones的最後一篇
後續還是會繼續看一些基礎的東西
免得自己失去興趣放棄比賽(?)
Dispatcher的就是完整包裝好提供開發者輕鬆使用的 CoroutineContext Element,Kotlinx coroutine中有四種 Dispatcher 分別是:
像MainScope 的 CoroutineContext 是 supervisorJob() + Dispatcher.Main ,MainScope 實質上是提供一個 Main thread 為 context 的 Scope。
launch 如果沒有傳入參數,就用 CoroutineScope 所定義的 CoroutineContext 。
下例為讀取記憶卡的範例程式:
class CoroutineActivity : AppCompatActivity(), CoroutineScope byMainScope() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_coroutine)
launch(Dispatchers.Main){
progressBar.visibility= View.VISIBLE
readSomeFile()
progressBar.visibility= View.GONE
}
}