В простом для понимания объяснении, что такое Runnable, Handler и Multi-Threading в Kotlin? - PullRequest
0 голосов
/ 22 мая 2019

Я новичок в программировании Android и изучаю Android Studio, используя Kotlin.Я шел через программу, которая использует Handler и Runnable.Хотя я получил приблизительное представление о том, что это такое, вы можете объяснить это полностью понятным образом в контексте данного примера кода.

Вот грубая идея, которую я получил.

Обработчик обрабатывает выполняемый объект в очереди сообщений потока.

class 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)
}

}

Я хочу знатьпоток данного кода

...