如何在不打开的情况下将数据发送到另一个活动

时间:2014-08-03 19:29:14

标签: android android-intent sharedpreferences send

我希望能够从活动a到活动b的数据而无需打开活动b,我希望以后能够回到活动b并查看显示的数据我希望数据(文本)保持均匀如果手机关闭或应用程序关闭。

我已经尝试过使用意图和共享偏好但我见过的例子都要求我去参加活动b。

3 个答案:

答案 0 :(得分:1)

您应该将数据存储在其他位置 - 例如在SQLite数据库中,静态全局模型或SharedPreferences。在活动B中,对数据应用更改并在活动A onResume()方法中读取它。

修改

您可以查看如何保存和读取数据库中的数据,例如HERE,我已经描述了如何创建数据库并从传感器保存数据。要从数据库中读取数据,例如rawQuery() - here你可以找到一些细节。

答案 1 :(得分:0)

答案 2 :(得分:0)

SharedPreferences不一定要求您转到活动B.它基本上只是让您轻松访问文件,您可以从任何活动中执行此操作。例如,在活动A:

中创建这些方法
public String getPreference() {
    SharedPreferences sp = getSharedPreferences("preferenceName", 0);
    return sp.getString("preferenceKeyValue", "default value if no preference is found");
}
public void setPreference(String data) {
    SharedPreferences.Editor editor = getSharedPreferences("preferenceName", 0).edit();
    editor.putString("preferenceKeyValue", data).commit();
}

然后像这样打电话给他们:

setPreference("data for activity B");
// later on...
String data = getPreference();

该示例使用字符串,但您可以保存以下任何数据:布尔值,浮点数,整数,长整数和字符串。

以下是根据您的具体情况(更好的命名)修改的方法:

public String getActivityBData() {
    SharedPreferences sp = getSharedPreferences("Activity B Data", 0);
    return sp.getString("data", "There is no data yet!");
}
public void setActivityBData(String str) {
    SharedPreferences.Editor editor = getSharedPreferences("Activity B Data", 0).edit();
    editor.putString("data", str).commit();
}

您也可以将这些方法放在您的活动B类中,并像这样访问它们。保存的数据并非特定于任何活动。