• 从UI Thread向Worker Thread发送消息对象

    补充线程间的数据传递
    服务器君一共花费 108.993 ms 进行了 4 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    用Handler实现线程间的消息通信 这个实例中,我们在 Worker Thread 中将消息发送到主线程里,然后修改 UI。其实标题起得不是那么对…… 因为我们还需要一种需求,就是在 UI Thread 将消息发送到 Worker Thread,两者结合起来才叫做“线程间的消息通信”。而且这种需求也很普遍,比如我们在首页的图片列表中,点击刷新,或者下来刷新什么的,就可能需要从 UI Thread 中发送消息给 Worker Thread,然后 Worker Thread 去检查服务器,看有没有内容更新,有就更新,没有就阻塞。

    那么现在我们就来做这么一个最简单的小例子来说明吧:

    private Button btn_refresh;
    private Handler refrsh_handler;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
    	setContentView(R.layout.activity_main);
    	
    	btn_refresh = (Button)findViewById(R.id.btn_refresh);
    	btn_refresh.setOnClickListener(new OnClickListener(){
    
    		@Override
    		public void onClick(View v) {
    			// TODO Auto-generated method stub
    			Message msg = refrsh_handler.obtainMessage();
    			refrsh_handler.sendMessage(msg);
    		}
    		
    	});
    	
    	RefreshThread rt = new RefreshThread();
    	rt.start();
    }
    
    class RefreshThread extends Thread{
    	@Override
    	public void run(){
    		Looper.prepare();
    		refrsh_handler = new Handler(){
    			@Override
    			public void handleMessage(Message msg){
    				System.out.println("接收到来自主线程的消息了。");
    			}
    		};
    		Looper.loop();
    	}
    }
    
    1. 点击按钮 btn_refresh,创建一个 msg 对象,利用 refrsh_handler 将消息 msg 发送到消息队列中。
    2. 实例化线程 RefreshThread,RefreshThread 利用 Looper 对象从消息队列中将数据取出。

    很简单的过程。程序运行结果如下:

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [JavaScript程序设计] jQuery与表单操作 2 个条目
  2. [移动开发] 从代码角度去认识 Thread 9 个条目
  3. [Python程序设计] 标准库:urllib/urllib2 14 个条目
  4. [移动开发] 从代码角度去认识HttpClient 2 个条目
  5. [软件工程与项目管理] 浏览器与CSS渲染技巧 2 个条目
  6. [Python程序设计] Tornado 服务器环境配置 3 个条目
  7. [计算机算法] 两数交换的各种算法细节 2 个条目
  8. [智力开发与知识管理] 信息的类型与结构 9 个条目
  9. [数据库技术] SQL基础语法 1 个条目
  10. [Python程序设计] Python语言概述 6 个条目
  11. [移动开发] Android加载器Loaders 5 个条目
  12. [软件工程与项目管理] 呈现器的布局与绘制 11 个条目
窗口 -- [协会]