Как я могу обновить Android интерфейс в сопрограмме? - PullRequest
0 голосов
/ 21 марта 2020

У меня есть код, который вылетает, когда я помещаю код, который обновляет интерфейс в сопрограмму. Например:

GlobalScope.launch {
//code that makes text box blue
delay(1000L)
}

Будет cra sh. Мне также нужно несколько раз l oop задержать, чтобы я не мог использовать почтовые обработчики. Как я могу это исправить?

1 Ответ

0 голосов
/ 21 марта 2020

Вы можете обновить свой пользовательский интерфейс таким образом, если вы работаете над действием

class MainActivity : AppCompatActivity() {

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

      launch(context = UI) {

        val result = async { loadString() }.await()
        Log.d("TAG", 
            "Post execution thread:"+Thread.currentThread().name)
        textView.text = result   
      }
    }

    private suspend fun loadString() : String {
       Log.d("TAG", "Execution thread: "+Thread.currentThread().name)
       delay(1000L)
       return "Some loaded string..."
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...