2011-07-07 5 views
2

私はアンドロイドでシンプルな音楽プレーヤーを実装しようとしていますが、私の問題はUIを更新しようとしたときです(例えば、再生中の曲の現在位置を表示するテキストビューを変更する)別のスレッドを使用するとスムーズに変更されません。私のタイマーの問題は、runメソッドでUIを直接変更できないということです。誰でも提案はありますか?ありがとうアンドロイドのUIが別のスレッドから変更される

+0

なぜあなたはTextViewのではなく、のようなものを使用しています[ ProgressBar](http://developer.android.com/reference/android/widget/ProgressBar.html)?この目的のためにバーがもっと自然になるような気がします。 – thegrinner

答えて

0

UI以外のスレッドから、ブロードキャストインテント&にUIで必要な変数を入力して送信します。&それを送信します。 UIスレッドでは、ブロードキャスト受信機&を実装して、UIスレッド自体を更新させます。

7

あなたがスレッドに直接UIを更新カントとができますが、runOnUiThreadメソッドを使用してスレッドでUIを変更することができます..このような

..

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

私はこれを試しました。しかし、テキストはまだ滑らかに変化しません。時には、1秒はスキップされます。それはもっと早く更新されなければならないようですが、私が非常に速く更新すれば、プログラム全体がクラッシュします。 – szilard

関連する問題