当前线程必须有一个循环器

问题描述 投票:0回答:1

在这里,我试图在main_layout上添加一个特定时间段的视图,为此我写了以下内容

main_layout.addView(linearLayout)
 Handler(Looper.getMainLooper()).post(Runnable {
        val timer = Timer()
        timer.schedule(object : TimerTask() {
            override fun run() {
                main_layout.removeView(imageView)
                timer.cancel()
            }
        }, 8000)
    })

但应用程序却出现了崩溃的错误。

java.lang.IllegalStateException: 当前线程必须有一个循环器!请告诉我,我还需要做什么?

请告诉我,我还需要做什么。

android view java-threads android-looper
1个回答
0
投票

我已经解决了我的问题,通过使用 HandleMessage() 方法。

mainHandler = object :Handler(){
            override fun handleMessage(msg: Message?) {
                super.handleMessage(msg)
               if (msg!!.what ==1){
                   removeView()
               }
            }
        }

 private fun removedata() {
    main_layout.removeView(imageView)
}

同时,为了执行所需的操作,该方法发送所需的指令集。

mainHandler.sendEmptyMessageDelayed(1,5000)

所以你可以看到,要调用remove(),需要1才能满足条件,第二个参数是我想要设置的延迟。

© www.soinside.com 2019 - 2024. All rights reserved.