2018-07-17 15:28:56 447浏览
今天扣丁学堂给大家整理了一下关于Android培训Kotlin学习教程之协程Coroutine的详细介绍,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。dependencies{ implementation'org.jetbrains.kotlinx:kotlinx-coroutines-core:0.22.5' implementation"org.jetbrains.kotlinx:kotlinx-coroutines-android:0.19.3" }
activity_coroutine.xml <?xmlversion="1.0"encoding="utf-8"?> <android.support.constraint.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".coroutine.CoroutineActivity"> <TextView android:id="@+id/tvHello" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </android.support.constraint.ConstraintLayout> CoroutineActivity.kt classCoroutineActivity:AppCompatActivity(){ overridefunonCreate(savedInstanceState:Bundle?){ super.onCreate(savedInstanceState) setContentView(R.layout.activity_coroutine) setup() } funsetup(){ launch(UI){//launchcoroutineinUIcontext for(iin10downTo1){//countdownfrom10to1 tvHello.text="Countdown$i..."//updatetext delay(1000)//waithalfasecond } tvHello.text="Done!" } } }
classCoroutineActivity:AppCompatActivity(){ lateinitvarjob:Job overridefunonCreate(savedInstanceState:Bundle?){ super.onCreate(savedInstanceState) setContentView(R.layout.activity_coroutine) setup() } funsetup(){ job=launch(CommonPool){//launchcoroutineinUIcontext for(iin10downTo1){//countdownfrom10to1 tvHello.text="Countdown$i..."//updatetext delay(1000)//waithalfasecond } tvHello.text="Done!" } } overridefunonPause(){ super.onPause() job.cancel() } }
launch(UI)
launch(){...}
launch(CommonPool){...}
privatefuncreatePlainPool():ExecutorService{ valthreadId=AtomicInteger() returnExecutors.newFixedThreadPool(defaultParallelism()){ Thread(it,"CommonPool-worker-${threadId.incrementAndGet()}").apply{isDaemon=true} } } privatefundefaultParallelism()=(Runtime.getRuntime().availableProcessors()-1).coerceAtLeast(1)
【关注微信公众号获取更多学习资料】