2011-07-07 88 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