我自己也试过了,多亏了“Droidev”。我用过
Anko library
对于异步任务。下面是代码:
doAsync {
Log.d("ASYNC", "Async A started")
foo1()
uiThread {
Log.d("ASYNC", "Async A done")
}
}
Thread.sleep(1000)
doAsync {
Log.d("ASYNC", "Async B started")
foo2()
uiThread {
Log.d("ASYNC", "Async B done")
}
}
}
fun foo1() {
Log.d("ASYNC", "foo1() called")
Thread.sleep(3000)
Log.d("ASYNC", "foo1() done")
}
fun foo2() {
Log.d("ASYNC", "foo2() called")
Log.d("ASYNC", "foo2() done")
}
这是我得到的结果/日志:
07-12 11:44:55.195 23990-24054/gemini.com.jetpack D/ASYNC: Async A started
foo1() called
07-12 11:44:56.195 23990-24028/gemini.com.jetpack D/ASYNC: Async B started
foo2() called
07-12 11:44:56.205 23990-24028/gemini.com.jetpack D/ASYNC: foo2() done
07-12 11:44:56.215 23990-23990/gemini.com.jetpack D/ASYNC: Async B done
07-12 11:44:58.195 23990-24054/gemini.com.jetpack D/ASYNC: foo1() done
07-12 11:44:58.205 23990-23990/gemini.com.jetpack D/ASYNC: Async A done
因此,方法foo2()不会等待foo1()完成。