Android开发之Handler(五)几种常见的传值方式

11 篇文章 0 订阅

Android开发之Handler(五)几种常见的传值方式

前面介绍handler的时候,也用到过几种传值方式,今天来总结一下,并且重点说一下bundle方式,代码如下:

 

[java] view plain copy

  1. package com.handlerThread;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.os.Handler;  
  6. import android.os.HandlerThread;  
  7. import android.os.Looper;  
  8. import android.os.Message;  
  9.   
  10. public class handlerThread2 extends Activity {  
  11.   
  12.     @Override  
  13.     protected void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.main);  
  16.           
  17.         //System.out.println("activity线程ID:"+Thread.currentThread().getId());  
  18.         HandlerThread handlerThread = new HandlerThread("handlerThread");  
  19.         handlerThread.start();  
  20.         MyHandler handler = new MyHandler(handlerThread.getLooper());  
  21.         Message msg = handler.obtainMessage();  
  22.           
  23.         //msg.arg1 = 123;//传递整型数据  
  24.         //msg.obj = "asd";传递object类型  
  25.           
  26.         //利用bundle对象来传值  
  27.         Bundle b = new Bundle();  
  28.         b.putInt("ID", 12);  
  29.         b.putString("name", "thinkpad");  
  30.         msg.setData(b);  
  31.           
  32.         msg.sendToTarget();  
  33.     }  
  34.     class MyHandler extends Handler {  
  35.   
  36.         public MyHandler() {  
  37.             super();  
  38.         }  
  39.   
  40.         public MyHandler(Looper looper) {  
  41.             super(looper);  
  42.         }  
  43.   
  44.         @Override  
  45.         public void handleMessage(Message msg) {  
  46.             super.handleMessage(msg);  
  47.             //int args = msg.arg1;  
  48.             //String s = (String)msg.obj;  
  49.               
  50.             //获取bundle对象的值  
  51.             Bundle b = msg.getData();  
  52.             int id = b.getInt("ID");  
  53.             String name = b.getString("name");  
  54.             System.out.println("id is "+id+", name is "+name);  
  55.               
  56.             //System.out.println("handler线程ID:"+Thread.currentThread().getId());  
  57.         }  
  58.           
  59.     }  
  60.   
  61. }  

运行结果

 

那么,bundle具体是个什么东西呢,我们来看一下官方的解释

哈哈,这个基本上是andriod文档中写的最好的一个的,短短几个单词就说的清清楚楚了,熟悉Java集合框架的人应该马上就会用了,则不用去看剩下的文档了,依葫芦画瓢就好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值