Android学习过程中学习使用多种方法实现对UI的更新。
其实学习过Android的同学都知道:Android是不允许在子线程中更新UI的,即上面的标题是有错误的,正确的说法是:在子线程中的时候想要更新UI的方法。
第一种:利用 new Handler的looper
new Handler(context.getMainLooper()).post(new Runnable() {
@Override
public void run() {
// 在这里执行你要想的操作 比如直接在这里更新ui或者调用回调在 在回调中更新ui
}
});
第二种:利用较为传统的方法Handler处理子线程发来的UI更新请求:
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 1:
break;
case 2:
break;
}
}
};
第三种:子线程转到主线程,利用runOnUiThread(即异步消息处理机制):
((Activity) context).runOnUiThread(new Runnable() {
@Override
public void run() {
// 在这里执行你要想的操作 比如直接在这里更新ui或者调用回调在 在回调中更新ui
}
});