用一个简单易懂的解释,在Kotlin中什么是可运行,处理程序和多线程?

时间:2019-05-22 17:48:48

标签: android multithreading kotlin handler runnable

我是Android编程的新手,正在使用Kotlin学习Android Studio。我正在查看一个使用Handler和Runnable的程序。尽管我对它的含义有一个大概的了解,但是您能否在给定的示例代码的上下文中以一种可以理解的方式对其进行完整的解释。

这是我明白的主意。

  

处理程序处理线程的消息队列中的可运行对象。

MainActivity类:AppCompatActivity(){

var score:Int= 0
var imageArray= ArrayList<ImageView>()
var handler: Handler= Handler()
var runnable: Runnable= Runnable {  }



override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    score= 0

    imageArray= arrayListOf(imageView1,imageView2,imageView3,imageView4,imageView5,imageView6,imageView7,imageView8,imageView9)

    hideimages()

    object: CountDownTimer(10000, 1000){
        override fun onFinish() {
            timerText.text="Times Up!"
            handler.removeCallbacks(runnable)
            for (image in imageArray){
                image.visibility= View.INVISIBLE
            }
        }

        override fun onTick(p0: Long) {
            timerText.text= "Time: ${p0/1000}"
        }

    }.start()
}
fun increasescore(view: View){
    score++
    scoreText.text= "Score: $score"
}
fun hideimages(){

    runnable= object : Runnable {
        override fun run() {
            for(image in imageArray){
                image.visibility=View.INVISIBLE
            }
            val random= Random()
            val index= random.nextInt(8-0)
            imageArray[index].visibility=View.VISIBLE
            handler.postDelayed(runnable,500)
        }
    }
    handler.post(runnable)
}

}

我想知道给定代码的流程

0 个答案:

没有答案