2013-04-26 152 views
0

我有一个仪表板Activity和一个用户Activity。在仪表板的每个操作中,我将使用startActivity(开始用户Activity)。如果用户按下用户Activity中的按钮,我想再次显示仪表板Activity。请给出指导方针来实现这一点,当仪表板Activity由于内存不足而死亡时也应该处理这个问题。在活动之间切换

+0

使用此答案检查'Dashboard Activity'是否仍在'Activity Stack'中:http://stackoverflow.com/a/6242122/450534。如果不是,则激发一个Intent以再次启动'Dashboard Activity'并在当前的Activity上调用'finish()'。理论上,我认为这将起作用。由于我没有测试过,所以作为评论。 ;-) – 2013-04-26 04:07:58

+0

in onPause()在活动结束时,您可以使用检查if(isFinishing())是否在您的活动中执行代码 – JRowan 2013-04-26 04:09:16

回答

0

Android框架将为您提供帮助。当您拨打startActivity()时,它会将新活动推送到当前任务堆栈的顶部(除非您调整启动模式或设置意图标志)

当用户按回时,它将当前活动从堆栈弹出并返回到先前的活动。

如果该框架杀死了以前的任何活动,则会重新创建它们。如果您在这些活动中仍有需要的实例数据,则应该覆盖onSaveInstanceState()来存储它,并且onRestoreInstanceState()来覆盖它(具有分配ID的系统视图中的数据将自动保存/恢复)。

详情请参阅Tasks and the Back Stack

唯一可能棘手的部分是,如果您通过intent跳转到用户页面上的应用程序,但仍然想要返回仪表板,则需要确保通过TaskStackBuilder准备回栈。