Android学习笔记1-1--数据3--Bundle

来源:互联网 发布:易语言魔域登陆器源码 编辑:程序博客网 时间:2024/05/24 01:15

Bundle

Bundle简介

Bundle主要用于传递数据。它保存的数据是以key-value(键值对)的形式存在的(Bundle的内部实际上是使用了HashMap

Bundle方法

Bundle提供了各种常用类型的putXxx()/getXxx()方法,用于读写数据。

Parcelable类型

Parcelable是Android自定义的一个接口,它包括了将数据写入Parcel和从Parcel中读出的API。一个实体如果需要封装到bundle消息中去,可以通过实现Parcelable接口来实现。

从parcelable接口定义中,我们可以看到,实现parcelable接口,需要我们实现下面几个方法:

1、describeContents方法。内容接口描述,默认返回0就可以;
2、writeToParcel 方法。该方法将类的数据写入外部提供的Parcel中.即打包需要传递的数据到Parcel容器保存,以便从parcel容器获取数据,该方法声明如下:writeToParcel(Parcel dest, int flags) 具体参数含义见doc文档。
3、静态的Parcelable.Creator接口,本接口有两个方法:createFromParcel(Parcelin) 从Parcel容器中读取传递数据值,封装成Parcelable对象返回逻辑层。newArray(int size) 创建一个类型为T,长度为size的数组,仅一句话(returnnew T[size])即可。方法是供外部类反序列化本类数组使用。

Serializable类型

Serializable是一个对象序列化的接口。一个类只有实现了Serializable接口,它的对象才是可序列化的。因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。因此Serializable接口的实现方法就很简单,只要implements Serializable接口就可以了。

Intent

Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent(该对象中包含了一个Bundle对象变量,用于存储数据),Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。使用Intent可以激活Android应用的三个核心组件:活动、服务和广播接收器。Intent可以划分成显式意图和隐式意图。

显式意图:调用Intent.setComponent()或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。

<intent-filter>    <actionandroid:name="android.intent.action.CALL" />    <categoryandroid:name="android.intent.category.DEFAULT" />    <dataandroid:scheme="tel" /></intent-filter><intent-filter>    <actionandroid:name="android.intent.action.CALL" />    <categoryandroid:name="android.intent.category.DEFAULT" />    <dataandroid:mimeType="vnd.android.cursor.item/phone" /></intent-filter>
原创粉丝点击