标签:
一.在不同的Activity之间的数据传递(不是跳转)
1.通过Intent传递数据 (高)
(a)官方推荐,满足大部分情况
(b)无法传递不能序列化的对象。比如存储图像数据的Bitmap对象就无法通过Intent对象进行传递。有些没有实现java.io.Serializable接口的类也无法传递。
2.使用静态变量传递数据 (低)
如Activity1-->Activity2 可以在Activity1中调用Activity2的静态变量进行传值。
3.使用剪贴板传递数据 (不推荐)
(a)无论windows,来说linux都会支持一种叫剪切板的技术。就是某一程序将一些数据复制到内存的某一区域,然后其他的任何程序都可以从这一区域中获取数据。
(b)剪切板只能存储简单类型数据或可序列化的对象,如果想传递,就将其转换成字节流。
4.使用全局对象传递数据 (中)
(a)使用静态变量可以传递任意类型的数据,但官方不推荐。如果在类中大量使用静态变量(尤其是一些很占资源的变量,如Bitmap对象)可能会导致内存溢出。而且还有可能因为静态变量在很多类中出现而造成代码难以维护和混乱的状态。所以可以使用全局变量代替静态变量
(b)类似Java EE里的Java Web的4个作用域,从小到大是 Page,Request,Session,Application。Application在应用程序的任何地方都能访问到,除非web服务器停止,否则一直存在。
(c)Android中的全局对象就类似于Web中的Application域,除非将Android应用程序彻底清除出内存,否则全局对象一直可以访问。
(d)全局对象所对应的类必须从android.app.Application继承。可以在类中做一些事情,把普通变量当成静态变量使用了。所有类都可以给它赋值和取值。
标签:
原文地址:http://www.cnblogs.com/ztSpace/p/4272359.html