Текущий поток должен иметь петлитель - PullRequest
0 голосов
/ 28 апреля 2020

Здесь я пытаюсь добавить представление над main_layout для определенной продолжительности c, для этого я пишу

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

, но приложение получает cra sh с ошибкой:

java .lang.IllegalStateException: У текущего потока должен быть петлитель!

пожалуйста, дайте мне знать, что еще я должен сделать здесь.

1 Ответ

0 голосов
/ 28 апреля 2020

Я решил мою проблему с помощью метода 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 для заполните условие и второй параметр - желаемая задержка, которую я хотел установить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...