• 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);


  • 相关阅读:
    shell中十种实现自加的方法
    expect 安装使用
    wireshark常用过滤规则
    linux错误收集
    18.socket概述
    17.异常处理/模块与包
    15.常用模块【time/os/sys】
    14.继承与授权
    13.面向对象(多态/(性)/封装)
    11.高阶函数(匿名/*递归/函数式)对象编程基础
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4330466.html
Copyright © 2020-2023  润新知