почему веселье не исполняется внутри темы Котлин? - PullRequest
0 голосов
/ 25 ноября 2018
  • Я пытаюсь выполнить функцию внутри Thread, но эта функция не выполняется:

    Thread {
        run {
            Thread.sleep(1000)
            createView(view, inflater)
        }
    }.start()
    
  • Поэтому я пытаюсь использовать другой код, например:

    thread(start = true) {
        Thread.sleep(1000)
        createView(view, inflater)
    }
    

    и снова createView не выполняется

  • Наконец я пытаюсь:

    Thread {
        Thread.sleep(5000)
        fun run() {
            Runnable {
                createView(view, inflater)
            }
        }
    }.start()
    

    , и я получил ошибку:

    "Только исходный поток, создавший иерархию представлений, может касаться его представлений. "

1 Ответ

0 голосов
/ 26 ноября 2018

Только основной поток может изменять представления.Поэтому вам нужно сделать что-то вроде этого:

Thread {
    Thread.sleep(5000)

    this@SomeActivity.runOnUiThread(Runnable {
        createView(view, inflater)
    })
}.start()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...