пользовательский интерфейс Android изменить из другого потока - PullRequest
2 голосов
/ 07 июля 2011

Я пытаюсь реализовать простой музыкальный проигрыватель на Android, но моя проблема в том, что при попытке обновить пользовательский интерфейс (например, изменить текстовое представление, отображающее текущую позицию воспроизводимой песни), оно не меняется плавно если я использую другой поток. Моя проблема с таймером заключается в том, что в методе запуска я не могу изменить пользовательский интерфейс напрямую. Есть какие-нибудь предложения? Спасибо

Ответы [ 2 ]

7 голосов
/ 07 июля 2011

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

как этот ..

 activity.runOnUiThread(new Runnable() {@Override public void run()
 {
       TextView.setText("hiiiiiiiii");
 }});
0 голосов
/ 07 июля 2011

Из потока, не являющегося пользовательским интерфейсом, отправьте широковещательное намерение и заполните его переменными, требуемыми для пользовательского интерфейса, а затем отправьте его.В потоке пользовательского интерфейса реализуйте Broadcast Receiver и позвольте потоку пользовательского интерфейса обновлять себя.

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