Android 在子线程中更新UI的几种方法
第一种:
new Handler(context.getMainLooper()).post(new Runnable() { @Override public void run() { // 在这里运行你要想的操作 比方直接在这里更新ui或者调用回调在 在回调中更新ui } });
context是你传过来的context对象
另外一种:
// 假设当前线程是UI线程,那么行动是马上运行。假设当前线程不是UI线程,操作是公布到事件队列的UI线程 // 由于runOnUiThread是Activity中的方法,Context是它的父类,所以要转换成Activity对象才干使用 ((Activity) context).runOnUiThread(new Runnable() { @Override public void run() { // 在这里运行你要想的操作 比方直接在这里更新ui或者调用回调在 在回调中更新ui } });第三种:
第三种是使用Handler的方法,往Handler中发送一个消息,然后当Handler接收到你发送过来的消息,再在Handler运行对应的操作
这是接收消息运行的代码:
private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: button1.setText("点击安装"); down = 1; break; case 2: down = 2; button1.setText("打开"); break; } } };
这是发送消息的代码:
// 往handler发送一条消息 更改button的text属性 Message message = handler.obtainMessage(); message.what = 1; handler.sendMessage(message);
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。