2011-07-07 87 views
2

我想在android中实现一个简单的音乐播放器,但我的问题是,当试图更新UI(例如,更改显示正在播放的歌曲的当前位置的textview)如果我使用另一个线程,它不会顺利改变。我的计时器问题是,在运行方法中,我无法直接更改UI。有任何建议吗?谢谢android UI从另一个线程更改

+0

你为什么要使用一个TextView,而不是像一个[进度条(http://developer.android.com/reference/android/widget/ProgressBar.html)?在我看来,像这样的酒吧更自然。 – thegrinner

回答

0

从非UI线程发送广播意图&填充UI所需的变量&然后发送它。在UI线程中实现Broadcast Receiver &让UI线程自行更新。

7

你不能更新UI直接线程,但可以使用runOnUiThread方法..

像这样的线程更改UI ..

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

我试过了。但文字仍然没有变化。有时一秒钟会被跳过。似乎它不得不更新更快,但如果我更新得非常快,那么整个程序崩溃。 – szilard