Android从上次Activity运行应用程序

我有一个应用程序与几个活动。 我的A活动有清单意图filter参数:action.MAIN和category.LAUNCHER。 在被加载后,我打电话给活动B,完成()A,因为我不再使用它了。

运行我的应用程序后,从活动A到B,然后按主屏幕button,当我从应用程序菜单或市场应用程序重新启动它(例如,不是长按主屏幕button),它从一个活动,不保存最后的活动B.

我当然知道这是可能的重新启动应用程序从它的上一个活动(市场的一些应用程序支持它),我认为这可以由Manifest参数确定,但我不知道哪一个。

有谁知道如何实现它,所以我的应用程序可以重新启动它的最后一个Activity B?

谢谢ayanir

Solutions Collecting From Web of "Android从上次Activity运行应用程序"

虽然我知道这是一个古老的问题,但是我正在为这个问题苦苦挣扎,所以在SO上找不到答案。 所以,这是我的(非常新手)答案:

不,我不认为有可能通过搞清表单来做到这一点 – 您只能从主屏幕上为每个应用程序启动一个固定的活动。 然而,你可以做的是从这个起点开始你想要的任何活动,而Android可以做得很快,你永远不会看到第一个。

虽然这感觉非常像黑客攻击,但是我在启动活动的onResume()方法中实现了此路由,并使用sharedPreferences来跟踪要启动的活动:

final Class<? extends Activity> activityClass; SharedPreferences prefs = getSharedPreferences("sharedPrefs", MODE_PRIVATE); int activityID = prefs.getInt("whichActivity", -1); if (activityID == Constants.ACTIVITY_ID_MAINSCREEN) { activityClass = MainScreen.class; } else { activityClass = null; return; } Intent newActivity = new Intent(this, activityClass); this.startActivity(newActivity); 

最近有很多类似的问题。 首先search网站是一个好主意,以确保重复问题不被询问。

例如,下面链接的问题说,这种行为发生,因为开发人员正在使用Eclipsedebugging器启动他们的应用程序。 另一个人遇到这个问题是因为他们直接从Eclipse启动应用程序,而不是通过手动按下启动器图标来干净地启动。

Android:从HOME重新启动后保留任务的活动堆栈

因此在Android中开发应用程序时需要考虑一些事项。 其中最重要的是应用程序生命周期,如果你还没有,我会build议这个video 。 会发生什么情况是应用程序可能会在任何时间点被终止并重置,您需要保存应用程序的状态以便随时恢复。 如果您从启动器打开您的应用程序,您将始终进入启动应用程序的活动,如果您想跳到下一个活动,则需要存储该信息,然后跳到代码中的活动。
也看看这个关于SavingPersistentState的文档