我想更改活动的背景(或更简单的textview背景)async。
颜色应在间隔后改变(此处为500 MS)。我无法通过异步类访问视图或textview。
有没有办法做到这一点?
$
答案 0 :(得分:2)
UI线程是唯一允许操作视图的线程。
或者,使用View.postDelayed
view.postDelayed(new Runnable() {
int count = 0;
@Override
public void run() {
//do something on UI thread
if(count++ < 10) {
view.postDelayed(this, 500);
}
}
}, 500);
这会自动使用UI线程。
答案 1 :(得分:0)
尝试这种简单的方式而不是代码。像这样的东西
Handler handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
for(int i = 0; i < 10; ++i) {
try {
setColor(i*10,0,0);
Thread.sleep(500)
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
将此行称为您要开始的地方
handler.postDelayed(r, 500);