Android将值传递给尚未启动的活动

时间:2014-11-10 03:10:54

标签: android android-intent

我遇到了将值传递给活动的问题。我有一个Title活动启动Generating活动。生成活动启动Play活动。假设我想将一些值(例如布尔值)传递给Title活动中的Play活动。

我是否必须首先将其传递给Generating activity,然后让Generating活动将值传递给Play?或者我可以通过putExtra()绕过Generate活动传递它,即使Title活动没有直接启动Play活动吗?

2 个答案:

答案 0 :(得分:1)

intent是包含将启动活动的数据的消息。该数据仅适用于目标活动。

所以回答你的问题:

不,您无法将意图数据从TileActivity传递到PlayActivity。您必须将其传递给GeneratingActivity,然后GeneratingActivity将其传递给PlayActivity。

有使用意图的替代方法,例如:

  1. 静态/全局数据 - 请谨慎使用。由于Android管理您的流程,使用此方法可能会很危险。
  2. SharedPreferences - 这是一种持久化数据的机制。您的第一个活动可以将数据保存在SharedPreferences中,第三个活动可以从SharePreferences中读取它。由于上述方法#1的危险性,许多人在Android中采用这种方法。

答案 1 :(得分:0)

您可以使用public class变量创建static

public class Global {
   public static boolean play = false;
}

您只需在Global.play = true中致电Title Activity,然后根据您的需要检查Global.play(或其他Play Activity}中Activities的值