必威体育Betway必威体育官网
当前位置:首页 > IT技术

Bundle,Message,Handle用法解析

时间:2019-08-11 01:42:06来源:IT技术作者:seo实验室小编阅读:68次「手机版」
 

handlemessage

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):指定多少毫秒之后发送消息。  

相关阅读

MessageBox深入研究

总结的特别好,所以打算记录下来 原文地址:https://blog.csdn.net/AcceZn/article/details/54670776 MessageBox是最简单的图形界面

MessageBox.Show 用法介绍

简介摘要:MessageBox.Show (String) 显示具有指定文本的消息框。 由 .NET Compact Framework 支持。 MessageBox.Show (IWin32Wind

error C2665: “AfxMessageBox”

使用AfxMessageBox("CreatePen Error!!");这个语句时,编译器提示“AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型

Java web项目报错:HTTP Status 404 – Not Found Type

在用intelijIDEA的时候,因为是第一次接触这个,对项目的发布很是迷糊。怎么弄老是404错误: HTTP Status 404 – Not Found Type Stat

DECLARE_MESSAGE_MAP用法

DECLARE_MESSAGE_MAP( ) 说明: 你的程序中的每一个CCmdTarget的派生类都可以提供一个消息映射以处理消息。在你的类声明的末尾

分享到:

栏目导航

推荐阅读

热门阅读