【问题标题】:How to send data to another activity without opening it如何在不打开的情况下将数据发送到另一个活动
【发布时间】:2014-09-26 07:32:18
【问题描述】:

我希望能够在不打开活动 b 的情况下将数据从活动 a 传输到活动 b,我希望稍后能够返回活动 b 并查看显示的数据我希望数据(文本)保持均匀如果手机已关闭或应用已关闭。

我已经尝试过使用意图和共享偏好,但是我看到的示例都需要我去活动 b。

【问题讨论】:

标签: android android-intent sharedpreferences send


【解决方案1】:

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

编辑

您可以检查如何从数据库中保存和读取数据,例如HERE,我在这里描述了如何创建数据库和保存来自传感器的数据。要从 DB 中读取数据,请使用例如rawQuery() - here你可以找到一些细节。

【讨论】:

  • 任何关于我如何做到这一点的例子
【解决方案2】:

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 类中并像这样访问它们。保存的这些数据并不特定于任何活动。

【讨论】:

  • 我如何将数据放到第二个活动中
  • 它不需要“开启”第二个活动。你所说的你想做的事是不可能和不必要的。
【解决方案3】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多