Activity之间的数据传输的4种方法

Activity之间的数据传输的4种方法

  1. Intent传递数据

这是一种官方推荐的传输方式。比如,你在A这个Activity上拿到一坨用户输入的文本信息,兴高采烈的想把它放到B这个Activity上展示并发送,一个很可行的方式,是通过Intent的putExtra接口,把用户输入的那些字符信息,按照key/value的形式放进Intent,传输到B这个Activity上。

Intent intent = new Intent(LoginActivity.this, MainActivity.class);
intent.putExtra("flag", flag);
intent.putExtra("data",data);
startActivity(intent);

Intent 还可以进行数组和对象的传递,上述代码设计一个Data类,这个类是可序列化的、也就是实现了java.io.Serializable接口的类。

public class Data implements Serializable {  

private int age;  
private String name;  
private String address;   
}

使用Bundle:

Intent intent = new Intent(ThreeActivity.this, FourActivity.class);  
    Bundle bundle = new Bundle();  
    bundle.putString("name", "Lin");  
    bundle.putInt("age", 13);  
    intent.putExtras(bundle);  
    startActivity(intent); 

Bundle不能传递过大的数据,最好小于0.5M

2、使用静态变量传递数据

此方法不建议使用因为Davlik虚拟机的垃圾回收器并不可靠,如果过多的使用静态变量会大量的占用手机内存,使用场景:多个页面都使用此参数,数据量较小

3、使用剪切板传递数据

ClipboardManager manager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
 String name = "jack";
 manager.setText(name)

4、通过全局Application类共享数据

MyApp extends Application{
    String var;
    public void setVar(String var){
         this.var = var;
    }
}

在Manifest.xml中标签中 android:name=”.MyApp” ,其它Activity中调用getApplication()获取该全局对象

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值