android activity之间数据的传递方式

本文介绍了在Android中四种常见的数据传递方式:通过Intent、静态变量、剪贴板和全局变量。详细讨论了每种方式的实现及优缺点,其中Intent是最常用的方式,而全局变量和剪贴板传递可能会带来内存消耗和效率问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android下常用的数据传递方式可以为四种,分别为:

1.通过Intent传递数据。

2.通过静态变量传递数据。

3.通过剪贴板传递数据。

4.通过全局变量传递数据。

下面分别来说下这四种方式如何实现。


一。Intent传递数据

  通过Intent传递的数据可以是字符串、数字等其它数据类型,同时也可以传递一个可序列化的类,也就是实现了Serializable接口。我们都可以通过Intent下的putExtra方法进行传递,在接收的activity类里面,使用getIntent().getXXX系列方法进行获取即可。具体如何获取,这里不详细例举。


二。通过静态变量传递数据

  该方法较为容易,只需要在接收的activity类里面,定义静态变量,然后在赋值的activity进行赋值即可。


三。通过剪贴板传递数据

  ClipboardManager clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);

  clipboard.setText("通过剪贴板传递数据");

  接收方activity直接获取即可

  clipboard.getText().toString();

  不过这种方法不推荐使用,因为该方法只能传递字符串,像int,bool,byte,short或者实现了Serializable接口的均无法传递,就算要传递,也需要转换成字符串才能进行传递,效率上较低同时也提高了代码的维护难度。


四。通过全局变量传递数据

 开发过javaWEB的应该都知道Page,request,Session,Application这几个作用域,其中application可以在任何地方进行访问,除非将Web服务停止,否则将一直存在,如果使用较多,是非常消耗内存的。

 android里面提供了一个类似于Web的Application,我们可以通过Application进行数据的传递,不过这种方法官方不建议使用,因为消耗内存,如果使用不当甚至会造成内存溢出,如存储大量的bitmap。

使用全局变量的话,我们需要继承Application类,示例代码如下:

public classUserInfo extends Application{

  public String username;

  publicString password;

}

然后需要在androidManifest.xml里面进行描述,需要加入如下代码:

<application android:name=".UserInfo" />

描述后,程序在运行的时候,对象会被自动创建,而且会一直在内存中驻留。直到程序退出为止。

使用的话就比较容易了,看如下代码。

UserInfo userinfo = (UserInfo)getApplicationContenr();

userinfo.username="aaa";

接着如何使用,就很容易了,跟用实体类一样,设置值即可。

获取代码如下:

UserInfo userinfo = (UserInfo)getApplicationContenr();

Log.i("用户名为:",userinfo.username);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值