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

    xiaoxiao2026-01-09  5

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

    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()获取该全局对象

    转载请注明原文地址: https://ju.6miu.com/read-1305835.html
    最新回复(0)