当开始活动不是"返回者"

时间:2018-06-02 00:08:18

标签: android

我们说我有四个活动:StartActivity,ConfigureActivity,GameActivity和ResultActivity。活动的流程如下:

  • StartActivity以意图启动ConfigureActivity
  • ConfigureActivity以意图启动GameActivity
  • GameActivity可以通过使用intent
  • 直接返回StartActivity
  • GameActivity可以使用intent
  • 启动ResultActivity
  • ResultActivity以意图启动StartActivity

在GameActivity中,用户有机会收集他或她想要保存以供以后使用的字符串。这些被添加到一个简单的字符串ArrayList中,稍后我将在StartActivity中使用它。

从GameActivity,用户可以启动ResultActivity,也可以退出当前活动以返回StartActivity。

当从GameActivity转到ResultActivity,然后从那里回到StartActivity时,ArrayList会一直传递给Intent。在通过监听onKeyDown完成的常规退出时,意图以相同的方式(数据传递回StartActivity)。

现在,我知道你可以使用startActivityForResult来启动一个带有excpectation的活动来取回一些东西。但是,因为我的StartActivity实际上启动了ConfigureActivity,并且ConfigureActivity根本不会涉及这些数据,我该怎么做呢?我使用SharedPreferences进行应用程序设置,但是我的xml文件包含永远不会更改的项目。在这种情况下,列表可能从0到100个字符串不等。我应该使用sqllite吗?

另外,我没有提供任何代码,因为我只是在寻找一些概念性的指导,而且我没有特别需要代码示例来回答这个问题。

1 个答案:

答案 0 :(得分:1)

只有StartActivity必须创建一个新的Intent。

所有其他活动使用相同的意图。

在开始新活动时转发,但也用作setResult()的结果意图。

不同的活动只是使用intent.putExtra()来放置额外的数据。

这样所有putExtras()都保持不变,每个活动都可以读取所有其他活动的putExtras。