在Android中的startActivity()方法之后丢失活动详细信息

时间:2013-04-01 17:52:34

标签: android android-intent android-activity

我的项目Connect + Details and Menu中有两项主要活动。在第一个活动到第二个活动之间切换后一切顺利。问题从“菜单”返回“连接+详细信息”开始。

当我使用后退键在第二个活动之间切换并返回第一个活动时,一切顺利。

使用此代码时

问题开始:

Intent myIntent = new Intent(Menu.this, ConnectActivity.class);
startActivity(myIntent);

我会回到“连接+详细信息”,但该活动中的每个细节都会丢失。

我的问题很简单,我怎样才能回到预览活动,并且仍然拥有该活动中使用的详细信息。

编辑: 即使我在第4,第5次活动中也是如此,finish()对我没有帮助。

2 个答案:

答案 0 :(得分:0)

您可能希望将数据保存在SharedPreferences或数据库中,然后使用保存的数据重新填充Activity。离开key/value后,您可以使用SharedPreferences保存Connect Activity对,即使您的应用已关闭,此功能也会保留。

如果存储了大量数据,您可以考虑使用SQLite DB。这对于设置和使用来说可能有点棘手但如果你要存储大量数据可能是值得的......特别是如果它用于不同的用户。

当您离开Activity或程序时,这两个选项都会保留您的数据。您也可以使用static Array,但前两个选项中的一个可能对您更好。

Storage Options Docs 有一些不错的示例可以让您入门,特别是如果您认为共享首选项适合您。

修改

除非发生某些变化,否则无法在SharedPreferences中存储可序列化的对象。但Here is a SO link讨论了将它们保存到文件并从那里读取。也许这会对你有帮助。

答案 1 :(得分:0)

不要使用Intent从'Menu'移动到'Connect + Details'而是调用finish();从它

仅在头等舱中使用意图移动到第二个,即“连接+详细信息”到“菜单”

请勿在Connect + Details

中调用finish()