我们说我有四个活动:StartActivity,ConfigureActivity,GameActivity和ResultActivity。活动的流程如下:
在GameActivity中,用户有机会收集他或她想要保存以供以后使用的字符串。这些被添加到一个简单的字符串ArrayList中,稍后我将在StartActivity中使用它。
从GameActivity,用户可以启动ResultActivity,也可以退出当前活动以返回StartActivity。
当从GameActivity转到ResultActivity,然后从那里回到StartActivity时,ArrayList会一直传递给Intent。在通过监听onKeyDown完成的常规退出时,意图以相同的方式(数据传递回StartActivity)。
现在,我知道你可以使用startActivityForResult来启动一个带有excpectation的活动来取回一些东西。但是,因为我的StartActivity实际上启动了ConfigureActivity,并且ConfigureActivity根本不会涉及这些数据,我该怎么做呢?我使用SharedPreferences进行应用程序设置,但是我的xml文件包含永远不会更改的项目。在这种情况下,列表可能从0到100个字符串不等。我应该使用sqllite吗?
另外,我没有提供任何代码,因为我只是在寻找一些概念性的指导,而且我没有特别需要代码示例来回答这个问题。
答案 0 :(得分:1)
只有StartActivity必须创建一个新的Intent。
所有其他活动使用相同的意图。
在开始新活动时转发,但也用作setResult()的结果意图。
不同的活动只是使用intent.putExtra()来放置额外的数据。
这样所有putExtras()都保持不变,每个活动都可以读取所有其他活动的putExtras。