Android传递Parcelable时忽略的一个细节
2016-06-15 15:51
519 查看
今天SZ突然问我传递Parcelable的实现类时,如果类成员变量中有一个类如何传递。。
写了很多继承Parcelable的类,这个问题还真没想过,第一反应就是该类也必须继承Parcelable
果然在Parcel类中找到
方法。
所以代码自然就出来了
。
。
。
写了很多继承Parcelable的类,这个问题还真没想过,第一反应就是该类也必须继承Parcelable
果然在Parcel类中找到
@SuppressWarnings("unchecked") public final <T extends Parcelable> T readParcelable(ClassLoader loader) { Parcelable.Creator<?> creator = readParcelableCreator(loader); if (creator == null) { return null; } if (creator instanceof Parcelable.ClassLoaderCreator<?>) { Parcelable.ClassLoaderCreator<?> classLoaderCreator = (Parcelable.ClassLoaderCreator<?>) creator; return (T) classLoaderCreator.createFromParcel(this, loader); } return (T) creator.createFromParcel(this); }
方法。
所以代码自然就出来了
protected TestBean1(Parcel in) { mIndex = in.readInt(); mTitle = in.readString(); mTestBean2 = (TestBean2) in.readParcelable(getClass().getClassLoader()); }
。
。
。
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mIndex); dest.writeString(mTitle); dest.writeParcelable(mTestBean2,flags); }
TestBean2也是继承了Parcelable的类,代码是这样的。那原理呢 这涉及到Android IPC通信机制,稍后再说
相关文章推荐
- [Android学习]Fragment粗浅入门
- Android--Retrofit浅入深出
- Android--侧滑菜单应用的实现
- Android利用Intent实现记事本功能(NotePad)
- android studio 混淆打包
- Android Studio 快捷键
- Android之乐学成语
- android 4.4.系统 添加一门新的语言
- android的ViewPager实现伪循环效果
- android 中导入第三方jar包
- Android取消沉浸式状态栏
- Android Studio错题记录
- Android利用Intent启动和关闭Activity
- 【Android】Android Camera实时数据采集及通过MediaCodec硬编码编码数据的流程
- Android性能优化总结
- 为Android5.0及以上版本中的TextView等控件设置波纹效果
- 玩kotlin,写个android里面的答题系统
- AlertDialog 点击按钮后不关闭的处理办法
- Android判断应用或Activity的存在性
- Android开源项目推荐之「最好用的Log」