Bundle,Message,Handle用法解析

xiaoxiao2021-02-28  32

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 arg1 int类型 用来存放整型数据  arg2 int类型 用来存放整型数据  what int类型 用来保存消息标示  obj Object类型 是Object类型的任意对象  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):指定多少毫秒之后发送消息。
转载请注明原文地址: https://www.6miu.com/read-2630492.html

最新回复(0)