Activity之间的数据传输的操作

来源:爱站网时间:2021-02-13编辑:网友分享
 Activity是我们每个程序员都必须掌握的内容,有些知识我们只要在网上查阅即可,这也显示了Activity的重要性,那么Activity之间的数据传输的操作,大家都清楚吗?下面由爱站技术频道小编来说一下。

 Activity是我们每个程序员都必须掌握的内容,有些知识我们只要在网上查阅即可,这也显示了Activity的重要性,那么Activity之间的数据传输的操作,大家都清楚吗?下面由爱站技术频道小编来说一下。

Activity之间是没有办法直接传递数据的。Android的设计原则是,用Intent在不同的Activity和进程之间进行通信,但是通常来讲,Intent中只能存入基本数据类型和系统默认支持的比如Uri之类的。那么对于用户自己定义的数据结构是无法直接用Intent来传送的,如果想要通过Intent来传递自定义数据,可以让数据结构实现Parcelable接口,这样就可以把数据放入Intent。但是Intent的传送效率也不是很高,特别是当传递一些如Bitmap的大数据,曾经在有一次遇到过,用Intent传递超过500K的Bitmap,就会造成Framework层的Java Binder挂掉,结果就是传递不成功。

这点可以算成是Android的一个弊端,没有很好的解决方案。能做到的就是尽量设计的时候注意,尽量让Activity之间共享基本数据类型。

Android本身的应用中也深受其害,可以看到有很多应用程序的源代码中的主要的类在三千行以上的不在少数,比如Browser中的BrowserActivity有四千多行;Mms中的ComposeMessageActivity也有四千多行。等等。为什么一个类会如此之大,就是因为它们是程序的主页面,是业务的核心逻辑所在,里面也控制着很多的其他的数据结构,而又无法与另外的Activity共享,所以就只能在一个Activity里面做所的事情。

另外,虽然不是很好的解决,但也还可以接受,就是对某些数据和逻辑类用单键模式,这样每个包内的类(包括Activity)都可以访问,比如Mms中的data包里面的WorkingMessage,Conversation,Contact和ContactList都是单键。

通过以上爱站技术频道介绍的Activity之间的数据传输的操作,我们都了解了很多了,希望能为你带来帮助。

上一篇:Android开发中处理程序和线程之间的通信技巧

下一篇:Android开发中实现文件分割和组装的方法

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载