第二章——Parcelable接口的使用(跨进程,Intent传输)
一、Parcelable类(Android独有的)
简介:Parcelable是一个接口。
作用:是Android提供的序列化接口,实现序列化和反序列化的操作。
二、跨进程使用
步骤一:创建Book类继承Parcelable接口
public class Book implements Parcelable {
private String mBookName;
private int mBookId;
/**
*准备:创建Book类,并继承Parcelable接口
*/
public Book(int bookId, String bookName) {
mBookId = bookId;
mBookName = bookName;
}
@Override
public String toString() {
return mBookId+""+mBookName;
}
}
步骤二:会提示必须重写接口的方法
describeContents():返回当前对象的描素内容,如果含有文件描述符(什么叫文件描述符)则返回1,否则返回0,一般都返回0(所以不用考虑咯)。
writeToParcel(Parcel out,int flags):将对象写入序列化
Parcel out :系统提供的输出流,将成员变量存储到内存中。
int flags:0或1,1表示当前对象需要作为返回值保存(不明白),基本上所有情况都为0,(所以说可以不用考虑咯)
//接上面的代码
@Override
public int describeContents() {
return 0;
}//描述文件,现在只要返回0就行 @Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(mBookId);
dest.writeString(mBookName);
}//将当前对象写入序列化结构
步骤三:创建反序列化对象 Parcelable.Creator<T>接口:专门用于反序列化
重写该接口的方法:
createFromParcel(Parcel in):系统提供的输入流,从序列化的对象获取数据。
newArray(int size):创建该对象的数组 (暂时感觉没用)
注:反序列化的时候,要按照序列化放入数据的顺序获取数据,否则会收不着值。
//一定需要按照这种格式书写 public static final Parcelable.Creator<Book> CREATOR
public static final Parcelable.Creator<Book> CREATOR = new Parcelable.Creator<Book>(){ @Override
public Book createFromParcel(Parcel source) {
return new Book(source);
}//获取输入流,反序列化对象 @Override
public Book[] newArray(int size) {
return new Book[0];
}
}; //创建构造方法,实例化对象
private Book (Parcel in){
mBookId = in.readInt();
mBookName = in.readString();
}
3.原理
Parcelable利用Parcel out 将数据存储到内存中,然后通过Parcel in 从内存中获取数据。
三、Intent之间传递Parcelable类(就是各个Activity传递对象的方法)
根据上面创建Parcelable的方式,创建该类,然后应用Intent传输就可以了。
第二章——Parcelable接口的使用(跨进程,Intent传输)的更多相关文章
- 第二章 使用接口(Using Interfaces)-书籍翻译
PDF预览 下载地址 http://files.cnblogs.com/DKSoft/CodingInDelphi.pdf 1.1. 解耦(Decoupling) All through this b ...
- Android开发艺术探索——第二章:IPC机制(中)
Android开发艺术探索--第二章:IPC机制(中) 好的,我们继续来了解IPC机制,在上篇我们可能就是把理论的知识写完了,然后现在基本上是可以实战了. 一.Android中的IPC方式 本节我们开 ...
- Android开发当中Parcelable接口的使用
本文转载于:http://www.2cto.com/kf/201205/132814.html 本文稍微做了些修改 android提供了一种新的类型:Parcel.本类被用作封装数据的容器,封装后的数 ...
- 第二章——Serializable的使用(跨进程使用和Intent的传递对象)
一.Serializable类(JAVA本身具有的) 简介:Serializable是一个接口. 作用:是JAVA提供的序列化接口,实现序列化和反序列化的操作. 二.跨进程使用 1.事前准备 publ ...
- Service官方教程(11)Bound Service示例之2-AIDL 定义跨进程接口并通信
Android Interface Definition Language (AIDL) 1.In this document Defining an AIDL Interface Create th ...
- MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型
目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...
- Android开发艺术探索——第二章:IPC机制(上)
Android开发艺术探索--第二章:IPC机制(上) 本章主要讲解Android的IPC机制,首先介绍Android中的多进程概念以及多进程开发模式中常见的注意事项,接着介绍Android中的序列化 ...
- [转]Windows Shell 编程 第二章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987893】
第二章Shell的结构 “Shell 编程”的大伞之下有大量的API函数和COM接口.这个种类繁多的‘命令’集允许你用不同的方法对Windows Shell进行编程.函数和接口并不是两种提供相同功能 ...
- Android艺术开发探索——第二章:IPC机制(下)
Android艺术开发探索--第二章:IPC机制(下) 我们继续来讲IPC机制,在本篇中你将会学习到 ContentProvider Socket Binder连接池 一.使用ContentProvi ...
随机推荐
- HDU 1088 - Write a simple HTML Browser
直接看sample input = = 又一道模拟. #include <iostream> #include <string> #include <cstdio> ...
- (转)三角函数计算,Cordic 算法入门
由于最近要使用atan2函数,但是时间上消耗比较多,因而网上搜了一下简化的算法. 原帖地址:http://blog.csdn.net/liyuanbhu/article/details/8458769 ...
- mysql学习(补充)
修改表名 rename table olderName to newerName; \c 结束不执行 设置字符集 set names gbk; mysql类型 数值型 属性修饰符 zerofill u ...
- [Non-original]OS X How do I unset an IP address set with ifconfig?
I recently used ifconfig en1 1.2.3.4 to set the IP address of a network interface (specifically, the ...
- Android 展示键盘时候布局被修改的问题
解决方法,在mainfest.xml中,对那个Activity加: <activity android:name=".activity.HomeActivity"androi ...
- 【转】浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!
所谓"data"类型的Url格式,是在RFC2397中 提出的,目的对于一些"小"的数据,可以在网页中直接嵌入,而不是从外部文件载入.例如对于img这个Tag, ...
- 什么是Activity、生命周期
1.什么是Activity 1.当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关的操作. 2.当启动其他的Activty时这个当前的这个 ...
- Android(digest)
Android开发者文档这么说的: Content providers manage access to a structured set of data. They encapsulate the ...
- Handler机制原理图、源码、使用!!!!!
android的消息处理机制——Looper,Handler,Message (原理图.源码) 转自:http://my.oschina.net/u/1391648/blog/282892 在开始讨 ...
- ios 开发指南
苹果Xcode帮助文档阅读指南 iOS开发官方文档汇总 翻译"iPhone SDK 开发"之UIKit使用… iOS中arc的设置与使用