【分析】Parcelable的作用

一、介绍

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  * 邮箱:[email protected]
 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     @Override
41     public int describeContents() {
42         return 0;
43     }
44
45     @Override
46     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         @Override
53         public Parcelable_Person createFromParcel(Parcel source) {
54             return new Parcelable_Person(source);
55         }
56
57         @Override
58         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:06
11  * 邮箱:[email protected]
12  */
13 public class Parcelable_Post extends Activity{
14
15     @Override
16     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:29
12  * 邮箱:[email protected]
13  */
14 public class Parcelable_Get extends Activity{
15
16     private static final String TAG = "myInfo";
17
18     @Override
19     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 }
时间: 2024-10-05 08:33:50

【分析】Parcelable的作用的相关文章

AJAX练习(一):制作可以自动校验的表单(从原理上分析ajax的作用)

继上文(AJAX(一)AJAX的简介和基础)作为联系. 传统网页在注册时检测用户名是否被占用,传统的校验显然缓慢笨拙. 当ajax出现后,这种体验有了很大的改观,因为在用户填写表单时,签名的表单项已经发送给了服务器,然后根据用户填写好的内容进行数据查询.在查询号无需页面刷新就自动给了提示.类似这样的应用大大的提高了用户的体验,本节简单介绍自动校验表单制作方法.从原理上分析ajax的作用. 1.搭建框架 首先为html框架 <form name="register"> <

网站日志分析诊断及其作用

相信大家都知道网站日志是什么东西,可是做SEO的有多少人会去关注分析网站日志呢,又有多少SEOer能看懂网站日志呢?今天就给大家讲解下在网站SEO优化中,怎样利用网站日志的诊断和分析来提高网站关键词的排名. 首先我们仙说下网站日志分析的作用,对于一个刚上线的网站,我们能分析出来搜索引擎蜘蛛抓取的情况:如果网站长时间收录有问题,那么我们也可以对比网站日志中的搜索引擎蜘蛛行为,来了解网站是哪方面出了问题:如果网站被封,或者被K,我们都可以通过观察网站日志的情况来了解原因处在什地方. 网站日志又称蜘蛛

Spring 框架的架包分析、功能作用、优点,及jar架包简介

Spring 框架的架包详解    Spring的作用     Spring的优势 由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关jar的作用.关系.这篇文章总结一下spring框架的相关知识. 一.spirng的简介(高手可以跳过) Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的.Sprin

[转]Android 中Parcelable的作用

转自: http://blog.sina.com.cn/s/blog_78e3ae430100pxba.html android提供了一种新的类型:Parcel.本类被用作封装数据的容器,封装后的数据可以通过Intent或IPC传递. 除了基本类型以 外,只有实现了Parcelable接口的类才能被放入Parcel中. Parcelable实现要点:需要实现三个东西 1)writeToParcel 方法.该方法将类的数据写入外部提供的Parcel中.声明如下: writeToParcel (Pa

Spring MVC 框架的架包分析,功能作用,优点

由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关jar的作用.关系.这篇文章总结一下spring框架的相关知识. 一.spirng的简介(高手可以跳过) Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的

举例分析private的作用【c/c++学习】

抛砖引玉: 1 c++中private的用处 2 我知道我们可以用 public 中的值,把private中的数据给提出来,但是还是搞不懂private该怎么用,或者说在一个具体程序中,private有什么用. 3 class fun{ 4 public: 5 void setname(string x) 6 { 7 name =x; 8 } 9 string getname() 10 { 11 return name; 12 } 13 private: 14 string name; 15 }

u-boot分析(十一)----MMU简单分析|u-boot分析大结局|学习规划

u-boot分析(十一) 通过前面十篇博文,我们已经完成了对BL1阶段的分析,通过这些分析相信我们对u-boot已经有了一个比较深入的认识,在BL2阶段大部分是对外设的初始化,并且有的我们已经分析过,在这篇博文我打算对BL1阶段没有分析到的重要外设进行简单分析,并结束对u-boot的分析,同时对后面自己的博文进行简单的规划,希望有兴趣的朋友跟我一块学习和研究嵌入式. 今天我们会分析到以下内容: 1.      MMU分析(内容出自我以前的博客) 2.      裸机开发总结 3.      后期

采用[ICONIX] 方法实践分析和设计之二 [用例建模](转)

在上一篇文章中我们了解并进行了域建模,换言之我们有了一个好的开始,起码开发人员对自己要开发的软件已有了初步的认识,且也得到了进行交流时可以使用的术语表. 本章将会在前一篇的基本上进一步阐述使用ICONIX方法实践用例建模,同样在文章的最后还会有在这个阶段最容易犯的10个错误,以给大家提醒或在分析过程中进行参照.     本文在ICONIX方法中所处的位置如下图(红圈标记的地方)     在开始进行用例建模之前,我们需要对这一过程有一些粗线条的认识,如果您以前做过或学习过这方面的知识,可以把下面的

为什么你的自定义View wrap_content不起作用?

前言 自定义View是Android开发中非常常用的知识 可是,在使用过程中,有些开发者会发现:为什么自定义View 中设置的wrap_content属性不起作用(与match_parent相同作用)? 今天,我将全面分析上述问题并给出解决方案. 目录 1. 问题描述 在使用自定义View时,View宽 / 高的wrap_content属性不起自身应有的作用,而且是起到与match_parent相同作用. wrap_content与match_parent区别: 1. wrap_content: