Day 15 | 同步与非同步- Coroutines

Coroutines

Coroutines(协同程序)是目前官方推荐的非同步执行方式。

倒数计时器

  1. 使用GlobalScope.launch()建立Coroutines
  2. 传入Dispatchers.Main以指定Main Thread
  3. Coroutines以回圈跟delay()实现倒数,由於delay()是Coroutines的内部方法,系统会自动判断delay()为耗时任务,并切换至Background Thread执行。
//执行於Main Thread
GlobalScope.launch(Dispatchers.Main){
	for(i in 10 downTo 1){
		textView.text="倒数 $i 秒"
		//执行於Background Thread以延迟一秒
		delay(1000)
		}
	//更新画面
	textView.text = "完成"
}

如果用Thread实作,程序码会变成.....

Thread{
	for(i in 10 downTo 1){
		runOnUiThread {
			textView.text="倒数 $i 秒"
		}
		//因为Thread.sleep会抛出例外所以用try-catch处理
		try{
				Thread.sleep(1000)
		} catch (e: InterruptedException){
			e.printStackTrace()
		}
		
		runOnUiThread {
			textView.text = "完成"
		}
	
}.start()

<<:  # Day 6 Supporting PMUs on RISC-V platforms (二)

>>:  大家好

Day15 - 【概念篇】OAuth flows: Authorization Code

本系列文之後也会置於个人网站 +----------+ | Resource | | Owner ...

XSS&CSRF&Replay

跨站点脚本(Cross-Site Scripting:XSS)和注入(Injection) 输入验证...

第二十八天:文字排版

金鱼都能懂的网页切版:22、23、24、25 文字排版 在文字排版里,html版面基本是一模一样,只...

资料的含义 | ML#Day9

实务上,我们可能并没有自己想的那麽了解系统的真实面,这也造就一些起步上的困难,反思一下,这也关於问题...

29/AWS SSA面试经验分享(下)

昨天已经介绍SSA的工作内容,还有面试关卡,今天想谈一下关於Amazon很强调的Star面试法跟他们...