Android 定息
我想在Android 定息,android,multithreading,textview,Android,Multithreading,Textview,我想在fixedRate处使用处理程序post delaySetText,但我不能这样做,因为我得到了一个错误,即我无法更改与主线程不同的线程中的文本 我有一个静态文本存储在另一个类中,可以更改它,我想将TextView的文本每100毫秒设置为该文本 如何解决这个问题?在android中,您应该只在UI线程上操作UI元素。您可以使用asynctask、hander或runOnUiThread来实现这一点。后者是最简单的: runOnUiThread(new Runnable() { pu
fixedRate
处使用处理程序post delaySetText
,但我不能这样做,因为我得到了一个错误,即我无法更改与主线程不同的线程中的文本
我有一个静态文本存储在另一个类中,可以更改它,我想将TextView
的文本每100毫秒设置为该文本
如何解决这个问题?在android中,您应该只在UI线程上操作UI元素。您可以使用asynctask、hander或runOnUiThread来实现这一点。后者是最简单的:
runOnUiThread(new Runnable() {
public void run() {
textview.setText("some text");
}
}
安排一个计时器来完成任务
private static class UpdateText extends TimerTask {
private final TextView tv;
public UpdateText(TextView tv) {
this.tv = tv;
}
@Override
public void run() {
tv.post(new Runnable() {
public void run() {
tv.setText(tv.getText() + "Append here");
}
});
}
在onCreate
中执行此操作
tv.setText("Append here");
setContentView(tv);
Timer timing = new Timer();
timing.schedule(new UpdateText(tv), 3000, 3000);