2011-07-07 2 views
2

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

+0

Почему вы используете TextView, а не что-то вроде [ ProgressBar] (http://developer.android.com/reference/android/widget/ProgressBar.html)? Мне кажется, что бар для этой цели будет более естественным. – thegrinner

ответ

0

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

7

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

как это ..

activity.runOnUiThread(new Runnable() {@Override public void run() 
{ 
     TextView.setText("hiiiiiiiii"); 
}}); 
+0

Я пробовал это. Но текст по-прежнему не меняется гладко. Иногда одна секунда просто пропущена. Похоже, что его нужно было обновлять еще быстрее, но если я обновляюсь очень быстро, вся программа выйдет из строя. – szilard

Смежные вопросы