Ability之间或者进程间数据传递之对象(Sequenceable序列化) 原创 精华
开源夏德旺
发布于 2021-2-26 13:55
浏览
8收藏
这两天51cto上的一个粉丝朋友问了我一个问题,Ability之间使用Sequenceable序列化传递数据,如何传递Uri类型数据?网上确实也没有介绍这个使用的demo,为了帮他解决问题,自己帮他写了一个demo,顺手发布一篇博客和源代码。
seralizable是在java api中的类,用它也可以实现序列化,而在android中也有一个类使对象序列化,那就是parcelable,而在HarmonyOS中用Sequenceable来进行序列化。
那么它们之间有什么区别呢?
seralizable:序列化到本地,是一个持久化的操作,效率慢一点
parcelable:只存在于内存,程序结束,序列化后的对象就不存在了。效率快一点
Sequenceable:等同parcelable在Android中的作用。
下面我编写两个AbilitySlice之间互相跳转来传递数据
MainAbilitySlice对应的布局文件代码如下:
就是系统自动生成的helloworld,我偷懒就没修改了,核心不在这里。
再创建一个TestSlice,布局代码如下:
为了要在两个Slice中间传递一个序列化对象数据,需要先创建一个实体类,并且实现Sequenceable接口,这里才是整个的核心代码,如下:
下面编写MainAbilitySlice的代码,给Text控件添加一个点击事件来跳转页面并且传递一个student参数
编写TestSlice的代码接收传递过来的student参数,并且通过toast展示
到此,代码编写完成,下面是运行测试图
这里也顺便完美解决了之前51cto上的粉丝朋友问我的Sequenceable对象无法读取Uri数据的问题。
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
SequenceDemo.zip 1.6M 68次下载
赞
12
收藏 8
回复
12
9
8
相关推荐
完美解决了之前Sequenceable对象无法读取Uri数据的问题。
向老师求知的态度和认真学习的精神学习。
向老师求知的态度和认真学习的精神学习。
粉丝的高光时刻不外乎于此了,夏大大的粉丝们,赶紧来赞赞赞。
太棒了!👍👍👍
不错!学习了!!
像夏老师学习
牛逼
Slice(跳转到Ability)传对象给Ability,这个对象内部类的对象是不能在Ability的intent取值的;
但是Slice(跳转到Slice)传值给Slice又可以,说明Ability不适合数据处理只能作为窗口载体使用。