如何android多Activity间共享数据

2025-04-30 19:05:44
推荐回答(2个)
回答1:

通过Application Context进行变量共享
首先,建立一个继承自Application的类,将要共享的变量在其中声明:
代码:

import android.app.Application;

public class ApplicationTrans extends Application {
private String value;

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}

}

注意:需要注意的是,写完这个类之后需要在AndroidManifest.xml中在Application节点中进行设置

android:name=".ApplicationTrans"//必须设置
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
android:name=".TwoActivityShareDataActivity"
android:label="@string/app_name" >










接下来在MainActivity中进行操作:
((ApplicationTrans) getApplication()).setValue("我是通过Application传递的值");//赋值操作

在第二个Activity中获得该值:就行用这个值进行操作了
((ApplicationTrans) getApplication()).getValue();

回答2:

1.基于消息的通信机制 Intent ---boudle ,extra
数据类型有限,比如遇到不可序列化的数据Bitmap,InputStream, 或者LinkList链表等等数据类型就不太好用。
2. 基于static静态数据
public static成员变量,一个Activity可直接访问另一个Activity的公共静态成员变量
3.基于外部存储的传输
如File、Preference、Sqlite 等,如果要针对第三方应用需要Content Provider
4.基于IPC的通信机制
context 与Service之间的传输,如Activity与Service之间的通信,定义AIDL接口文件
5. 基于Application Context
在自定义Application类中声明用于Activity共享数据的变量