Bundle,Message,Handle用法解析

本文详细介绍了Android中的消息机制,包括Bundle、Message和Handler类的作用及使用方法。Bundle用于存储和传递数据;Message用于在线程间传递消息;Handler则用于发送和处理Message,实现线程间的通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bundle类介绍:

         Bundle是一个载体,可以存放基本数据类型、对象等内容,相当于一辆汽车,可以装载很多东西,然后运到需要的地方,

Bundle mBundle=new Bundle();  //创建Bundle实例
mBundle.putString("sname","hanmei");
mBundle.putInt("snumber",100);
mBundle.putBoolean("flag",true);
Intent mIntent=new Intent();
//通过putExtras函数将Bundle数据存放在mIntent类中
mIntent.putExtras(mBundle);

Message类介绍:

       消息类(Message)被存放在MessageQueue中,一个MessageQueue中可以包含多个Message对象,每个Message对象可以通过Message.obtain()或Handler.obtainMessage()方法获得。一个Message对象有如下5个属性:

[plain] view plain copy
  1. arg1 int类型 用来存放整型数据  
  2. arg2 int类型 用来存放整型数据  
  3. what int类型 用来保存消息标示  
  4. obj Object类型 是Object类型的任意对象  
  5. replyTo Messager类型 用来指定此Message发送到何处的可选Message对象  

    *使用Message类的属性可以携带int类型数据,如果要携带其他类型的数据,可以先将要携带的数据保存到Bundle中对象  中,    然后通过Message类的setData()方法将其添加到Message中。
 如:

Message msg = new Message();
Bundle bundle = new Bundle();
bundle.putInt("int", 1);
bundle.putBoolean("boolean", false);
bundle.putByte("byte", (Byte) null);
bundle.putChar("char",'a');
bundle.putCharSequence("Stirng","Hello World");
bundle.putFloat("float", 12.3f);
bundle.putString("String", "Hello World");
bundle.putDouble("double", 12.3);
msg.setData(bundle);

Handle类介绍:

    1.用于进程之间跳转,实现子线程与主线程之间通信,例如:

Intent intent=new Intent();
intent.setClass(IntentActivity.this,NotificationActivity.class);
startActivity(intent);

    2.将Message或Runnable应用post()或sandMessage()方法发送到MessageQueue中,在发送时可以指定延迟时间、发送时间以及要携带的Bundle数据。当MessageQueue循环到该Message时,调用相应的Handler对象的handlerMessage()方法对其进行处理

    void handleMessage(Message msg):处理消息的方法,该方法通常用于被重写。   
    final boolean hasMessage(int what):检查消息队列是否包含what属性指定值的消息。   
    final boolean hasMessage(int what,Object object):检查消息队列中是否包含what属性为指定且object属性为指定指定对象的消息。   
    Message obtainMessage():获取消息。   
    sendEmptyMessage(int what):发送空消息。   
    final boolean sendEmptyMessageDelayed(int what,long delayMillis):指定多少毫秒之后发送空消息。   
    final boolean sendMessage(Message msg):立即发送消息。   
    final boolean sendMessageAtTime(Message msg,long uptimeMillis):定时发送消息。   
    final boolean sendMessageDelayed(Message msg,long delayMillis):指定多少毫秒之后发送消息。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路途…

点滴记录

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值