android整个上层java开发框架可以分为四个方面:界面(activity和appwidget)、消息(Intent和Message)、服务(Service)和数据(Sqllite、Content Provider)。

1.新的序列化方式:

android提供了一种新的类型:Parcel。本类被用作封装数据的容器,封装后的数据可以通过Intent或IPC传递。

除了基本类型以外,只有实现了Parcelable接口的类才能被放入Parcel中。

Parcelable实现要点:需要实现三个东西

1)writeToParcel 方法。该方法将类的数据写入外部提供的Parcel中.声明如下:

writeToParcel (Parcel dest, int flags) 具体参数含义见javadoc

2)describeContents方法。没搞懂有什么用,反正直接返回0也可以

3)静态的Parcelable.Creator接口,本接口有两个方法:

createFromParcel(Parcel in) 实现从in中创建出类的实例的功能

newArray(int size) 创建一个类型为T,长度为size的数组,仅一句话(return new T[size])即可。估计本方法是供外部类反序列化本类数组使用。

示例:

需求:我们经常需要在多个部件(activity或service)之间通过Intent传递一些数据,简单类型(如数字、字符串)的可以直接放入Intent。复杂类型(例如,J2ee中的Bean)的必须实现Parcelable接口。示例如下:

class SampleBean implements Parcelable{private Bundle mBundle = new Bundle();public String getArriveTime() {return mBundle.getString("arriveTime");}public String getOlTime() {return mBundle.getString("olTime");}public void setArriveTime(String arriveTime) {this.mBundle.putString("arriveTime", arriveTime);}public void setOlTime(String olTime) {this.mBundle.putString("olTime", olTime);}public int describeContents() {// TODO Auto-generated method stubreturn 0;}public void writeToParcel(Parcel out, int arg1) {// TODO Auto-generated method stubout.writeBundle(this.mBundle);}public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {public TrainInfo createFromParcel(Parcel in) {SampleBean ti = new SampleBean();ti.mBundle = in.readBundle();return ti;}public SampleBean[] newArray(int size) {return new SampleBean[size];}};}

这里采用Bundle是因为在Parcel中并没有key的概念存在,而Bundle相当于Map。

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. mybatisplus的坑 insert标签insert into select无参数问题的解决
  3. python起点网月票榜字体反爬案例
  4. Python list sort方法的具体使用
  5. python list.sort()根据多个关键字排序的方法实现
  6. Android控制后台音乐播放器暂停,播放
  7. 设置activity为Dialog类型的设置
  8. android studio 更新 Gradle错误解决方法
  9. Android之Handler用法总结

随机推荐

  1. weex最新实践,android集成,vue写三端统一的
  2. android Dialog 学习
  3. Android插件化小Demo
  4. android配置开发环境
  5. Android bluetooth介绍(一):基本概念及硬件
  6. android压力测试命令monkey详解
  7. Android中的Activity四种启动模式(launch
  8. 打电话的应用程序源码以及Android基础---
  9. Android include标签
  10. Android 4.4 KitKat NotificationManager