在Android中startActivity()方法之后丢失Activity细节



我有2个主要活动在我的项目连接+细节和菜单。当我在第一项活动和第二项活动之间切换时,一切都很顺利。问题开始于从"菜单"返回到"连接+详细信息"。

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

问题开始时,我使用以下代码:

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

我确实回到了"连接+细节",但该活动中的每个细节都丢失了。

我的问题很简单,我怎么能回到预览活动,仍然有在该活动中使用的细节。

编辑:同样的事情发生了,即使我在第四,第五活动,所以finish()没有帮助我。

您可能希望将数据保存在SharedPreferences或数据库中,然后使用保存的数据重新填充Activity。你可以使用SharedPreferences保存key/value对,当你离开你的Connect Activity,这将持续存在,即使你的应用程序被关闭。

如果有大量的数据存储,那么你可以考虑使用SQLite数据库。这在设置和使用上可能有点棘手,但如果你要存储大量数据,尤其是针对不同的用户,这可能是值得的。

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

存储选项文档有一些不错的例子让你开始,特别是如果你决定共享首选项将为你工作。

编辑

除非有什么改变,否则你不能在SharedPreferences中存储可序列化的对象。但这里有一个SO链接,讨论将它们保存到文件并从那里读取。

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

在第一类中只使用intent来移动到第二类中,例如,'Connect+Details'到'Menu'

不要在Connect+Details中调用finish()

最新更新