【分析】Parcelable的作用
来源:互联网 发布:linux删除命令大全 编辑:程序博客网 时间:2024/05/03 11:57
一、介绍
1.Parcelable是一个接口,可以实现序列化。
2.序列化的作用体现在:可以使用Intent来传递数据,也可以在进程建传递数据(IPC)。
3.Parcelable在使用的时候,有一个参数类型为:Parcel;它好比一个容器,序列化时,将数据传入。反序列化的时候,再将数据取出。
4.Parcelable不能再将要把数据存入磁盘的情况。因为,Parcelable在有外界的情况下不能有效的保证数据的持续性。
二、使用示例
1.被操作的数据实体和Parcelable的定义。
1 package com.app.suodr.serialization; 2 3 import android.os.Parcel; 4 import android.os.Parcelable; 5 6 /** 7 * 作者:WangPei on 2015/7/16 09:43 8 * 邮箱:460977141@qq.com 9 *10 * 通过writeToParcel将你的对象映射成Parcel对象,再通过createFromParcel将Parcel对象映射成你的对象。11 * 也可以将Parcel看成是一个流,通过writeToParcel把对象写到流里面,在通过createFromParcel从流里读取对象,12 * 只不过这个过程需要你来实现,因此写的顺序和读的顺序必须一致。13 */14 public class Parcelable_Person implements Parcelable{15 16 public String name;17 public int age;18 19 public Parcelable_Person(String name, int age) {20 this.name = name;21 this.age = age;22 }23 24 public String getName() {25 return name;26 }27 28 public void setName(String name) {29 this.name = name;30 }31 32 public int getAge() {33 return age;34 }35 36 public void setAge(int age) {37 this.age = age;38 }39 40 @Override41 public int describeContents() {42 return 0;43 }44 45 @Override46 public void writeToParcel(Parcel dest, int flags) {47 dest.writeInt(age);48 dest.writeString(name);49 }50 51 public static final Creator<Parcelable_Person> CREATOR = new Creator<Parcelable_Person>() {52 @Override53 public Parcelable_Person createFromParcel(Parcel source) {54 return new Parcelable_Person(source);55 }56 57 @Override58 public Parcelable_Person[] newArray(int size) {59 return new Parcelable_Person[size];60 }61 };62 63 public Parcelable_Person(Parcel in) {64 age = in.readInt();65 name = in.readString();66 }67 }
2.使用Intent来传递数据分为:传递方和接收方
传递方定义:
1 package com.app.suodr.serialization; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 7 import com.app.suodr.ik_family.R; 8 9 /**10 * 作者:WangPei on 2015/7/16 10:0611 * 邮箱:460977141@qq.com12 */13 public class Parcelable_Post extends Activity{14 15 @Override16 protected void onCreate(Bundle savedInstanceState) {17 super.onCreate(savedInstanceState);18 setContentView(R.layout.main);19 Intent i = getIntent();20 21 Parcelable_Person person = new Parcelable_Person("wangpei",100);22 23 i.putExtra("yes",person);24 i.setClass(this,Parcelable_Get.class);25 startActivity(i);26 this.finish();27 }28 }
接收方定义:
1 package com.app.suodr.serialization; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.util.Log; 7 8 import com.app.suodr.ik_family.R; 9 10 /**11 * 作者:WangPei on 2015/7/16 09:2912 * 邮箱:460977141@qq.com13 */14 public class Parcelable_Get extends Activity{15 16 private static final String TAG = "myInfo";17 18 @Override19 protected void onCreate(Bundle savedInstanceState) {20 super.onCreate(savedInstanceState);21 setContentView(R.layout.main);22 23 Intent i = getIntent();24 Parcelable_Person person = i.getParcelableExtra("yes");25 26 Log.i(TAG,"name: "+person.name+"age: "+person.age);27 }28 }
0 0
- 【分析】Parcelable的作用
- Android 中Parcelable的作用
- Android 中Parcelable的作用
- Android 中Parcelable的作用
- Android 中Parcelable的作用
- Android 中Parcelable的作用
- android中parcelable的作用
- Android 中Parcelable的作用
- Android中Parcelable的作用
- Android 中Parcelable的作用
- Android 中Parcelable的作用
- Android 中Parcelable的作用
- Android 中Parcelable的作用
- Android 中Parcelable的作用
- Android 中Parcelable的作用
- Android 中Parcelable的作用
- Android 中Parcelable的作用
- Android 中Parcelable的作用
- List的总结
- linux系统用户下的crontab任务不执行问题处理
- 2015互联网女皇报告中文版
- ChinaVis 2015 第二天
- 外网怎么访问内网svn
- 【分析】Parcelable的作用
- Play!Framework 学习笔记(二):ActionInvoker源码分析
- 欢迎使用CSDN-markdown编辑器
- 【汇总】Android 常用方法整理
- LeetCode的一个题目 Divide Two Integers
- MCC(移动国家码)和 MNC(移动网络码)
- Xcode7 真机调试步骤以及遇到的问题解决办法
- ListView的优化处理
- C#枚举的简单使用