从另一个线程更改android UI

从另一个线程更改android UI,android,android-layout,Android,Android Layout,我试图在android中实现一个简单的音乐播放器,但我的问题是,当我尝试更新UI时(例如,更改显示正在播放的歌曲的当前位置的文本视图),如果我使用另一个线程,它不会顺利更改。我的计时器问题是,在run方法中,我不能直接更改UI。有什么建议吗?感谢您从非UI线程发送广播意图并用UI所需的变量填充它,然后发送它。在UI线程中实现一个广播接收器并让UI线程自我更新。您不能在线程中直接更新UI,但可以使用runOnUiThread方法在线程中更改UI 像这样 activity.runOnUiThrea

我试图在android中实现一个简单的音乐播放器,但我的问题是,当我尝试更新UI时(例如,更改显示正在播放的歌曲的当前位置的文本视图),如果我使用另一个线程,它不会顺利更改。我的计时器问题是,在run方法中,我不能直接更改UI。有什么建议吗?感谢您

从非UI线程发送广播意图并用UI所需的变量填充它,然后发送它。在UI线程中实现一个广播接收器并让UI线程自我更新。

您不能在线程中直接更新UI,但可以使用
runOnUiThread
方法在线程中更改UI

像这样

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

我试过这个。但是文本仍然没有顺利地改变。有时一秒钟就被跳过了。似乎它必须更新得更快,但是如果我更新得很快,那么整个程序就会崩溃。为什么你要使用文本视图而不是类似文本的东西?在我看来,为了这个目的,酒吧更自然。