Android中的Parcelable接口(2)

注意,这里我们创建了一个私有的构造函数,这个构造函数的参数是Parcel对象,我们还创建了一个CREATOR的类变量,这个对象专门用于从序列化对象中创建ParcelableName对象,这是为了尽可能向外界隐藏序列化对象的实现细节,这种方式需要仔细琢磨,才能有所领悟。

值得提一下的是,Parcelable接口中还有一个ClassLoaderCreator接口,里面的createFromParcel()的第二个参数是一个ClassLoader对象,意味着我们可以反序列化不同的ClassLoader中的对象。

获取这段代码可以到:https://gist.github.com/zhlwish/3e2bbe9a15edf3b84ef7

这种代码写起来的确是挺麻烦的,有一个开源项目Parceler通过Anotation+代码生成的方法可以简化定义Parcelable对象的过程:

@Parcel
    public class Example {
        String mSurname;
        String mGivenName;
     
        public Example(){ }
     
        public Example(String surname, String givenName) {
            mSurname = surname;
            mGivenName = givenName;
        }
     
        public String getSurname() { return mSurname; }
        public String getGivenName() { return mGivenName; }
    }

看起来简单多了,不过话说回来,如果你需要序列化的对象比较小,而且次数不多,不影响效率,你还是可以继续使用Serializable接口的,毕竟编码和维护的代价都小得多。

Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法

Ubuntu 12.04搭建Android开发环境

Ubuntu 14.04 配置 Android SDK 开发环境

64位Ubuntu 11.10下Android开发环境的搭建(JDK+Eclipse+ADT+Android SDK详细)

Ubuntu 12.10 x64 安装 Android SDK

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d8588b248127f9994af07577ae022bdf.html