使用三种方法
- Activity的runOnUiThread(Runnable);
- View 的post(Runnable);
- View 的postDelayed(Runnable);
三个方法传的是Runnable接口对象
new Runnable() {
@Override
public void run() {
} }
案例:不断设置TextView的值
以下为三种方式的部分代码,省略布局xml,以及控件的绑定等操作
runOnUiThread(Runnable)
//Button的点击事件
public void onClick(View view){
//开启一个工作线程,进行值的改变
new Thread(new Runnable() {
@Override
public void run() {
while(i<100){
//每隔0.08秒更新设置一次值
try {
Thread.sleep(80);
} catch (InterruptedException e) {
e.printStackTrace();
}
i++;
//Activity的方法
runOnUiThread(new Runnable() {//加入UI线程,更新UI
@Override
public void run() {
textView.setText(i+"%");
}
});
}
}
}).start();
}
post(Runnable)
//Button的点击事件
public void onClick(View view){
new Thread(new Runnable() {
@Override
public void run() {
while(i<100){
i++;
try {
Thread.sleep(80);
} catch (InterruptedException e) {
e.printStackTrace();
}
//View的方法
textView.post(new Runnable() {//加入UI线程,更新UI
@Override
public void run() {
textView.setText(i+"%");
}
});
}
}
}).start();
}
postDelayed(Runnable)
//Button的点击事件
public void onClick(View view){
new Thread(new Runnable() {
@Override
public void run() {
while(i<100){
i++;
try {
Thread.sleep(80);
} catch (InterruptedException e) {
e.printStackTrace();
}
//0.8秒后开始更新UI
textView.postDelayed(new Runnable() {//加入UI线程,更新UI
@Override
public void run() {
textView.setText(i+"%");
}
},800);
}
}
}).start();
}
本文介绍在Android开发中如何使用三种不同的方法更新UI:runOnUiThread(Runnable)、View的post(Runnable)及postDelayed(Runnable)。通过具体示例展示了如何在后台线程中更新TextView的内容,并确保UI操作在主线程执行。

1404

被折叠的 条评论
为什么被折叠?



