Android(安卓)在子线程中更新UI的几种方法
16lz
2021-01-26
第一种:
new Handler(context.getMainLooper()).post(new Runnable() {@Overridepublic void run() {// 在这里运行你要想的操作 比方直接在这里更新ui或者调用回调在 在回调中更新ui}});
context是你传过来的context对象
另外一种:
// 假设当前线程是UI线程,那么行动是马上运行。假设当前线程不是UI线程,操作是公布到事件队列的UI线程// 由于runOnUiThread是Activity中的方法,Context是它的父类,所以要转换成Activity对象才干使用((Activity) context).runOnUiThread(new Runnable() {@Overridepublic void run() {// 在这里运行你要想的操作 比方直接在这里更新ui或者调用回调在 在回调中更新ui}});第三种:
第三种是使用Handler的方法,往Handler中发送一个消息,然后当Handler接收到你发送过来的消息,再在Handler运行对应的操作
这是接收消息运行的代码:
private Handler handler = new Handler() {@Overridepublic 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);
更多相关文章
- android内存泄漏分析的一种方式
- 【转】【Android游戏开发十五】关于Android(安卓)游戏开发中 OnT
- EventBus3.0配置及使用
- Android(安卓)SDK相关介绍
- 运行时权限方案:PermissionX
- Eclipse+CDT+GDB调试Android(安卓)NDK程序
- 【转】Android(安卓)Audio System
- Android线程优先级规定及其设置的具体方法
- Android(安卓)性能优化:多线程