zoukankan      html  css  js  c++  java
  • 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);


  • 相关阅读:
    Android笔记——UI开发
    P2P网络借贷系统-核心功能-用户投标-业务解说
    java回调简单实现
    Java面向对象编程(二)
    POJ-1190-生日蛋糕-DFS(深搜)-枚举-多重剪枝
    设计模式笔记——装饰模式
    bbed初体验
    高速理解环境变量
    最短路算法之 Dijkstra算法
    C++课程资源下载问题
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4330466.html
Copyright © 2011-2022 走看看