1.通过lntent传递数据
直接传递--internet。putextra
通过bundle --intent。putextras
这两种方式都要求传递的对象必须可序化。
(parcelable或serializable),且通过intent传递数据是有大小限制的,最好不要超过1m。
2.使用全局对象传递数据
在类中大量的使用静态变量(尤其是使用很占资源的变量,)可能会导致内存溢出,而且还可能因为静态变量在很多类中出现而造成代码难以维护和混乱的状态。全局对象可以完全取代静态变量。
android中的全局对象所对应的类可以从android。app。application继承,如:
public class myapp extemds pplication{
publicstring name;
public data data= new data();
}
在编写完全局类之后,还需要在androidmanifext.xml注册然后通过activity
由于某些原因,app会被系统强制杀死,此时再次点击进入应用时,系统会直接进入被杀死前面的那个界面,但此时app的内存已经被释放,数据为空,可能会出现异常,因此需要特别关注此种情况。
3.使用单例对象传递数据
public class myapplication { private string data; private myapplication () {} public static myapplication getinstance() { return myapplicationholder. sinstance; } private static class myapplicationholder { private static final myapplication sinstance = new myapplication ();
} public string getdata() { return data; } public void setdata( string data) { this. data = data; } } 设置 数据: myapplication. getinstance(). setdata( data); 在 activity 中 获取 数据: string data = myapplication. getinstance().
4.使用静态变量传递数据
1.直接设置和获取变量的值。
在别的activity中可以使用mainactivity.name这种方式设置和怄气变量的值。
2.通过接口方法设置和获取变量的值。
5.使用持久化方式传递数据
也就是使用sqlite、shanrepreference和file等传递数据。
1.优点
应用中说有地方都可以访问。
不会因为系统内存不足而丢失数据。
缺点
操作麻烦
效率低下
6.使用剪切板传递数据
把数据放在一个剪切对象(clipobject)里,然后这个对象会被放在系统的剪贴板里,这样可用于在activity间传递数据。clipobject可以有以下3种形式。(1)text:文字字符串文字直接放在clip对象中,然后放在剪贴板里,粘贴这个字符串的时候直接从剪贴板拿到这个对象,然后复制的时候把intent对象放在clip对象中,再放入剪贴板,粘贴数据时从clip对象中得到intent对象,然后可以在应用中使用。
深圳网站建设官网地址:
https://www.sabong.net
商务中心: 深圳市前海深港合作区前湾一路1号a栋201室
福田办公地址:深圳市福田区皇岗路5007神采苑402栋610
深圳市博纳网络信息技术有限公司是一家以互联网技术开发为核心的网络科技公司.专业从事网页设计,app开发,小程序开发,网站建设。