Android Run应用程序来自上一个Activity

时间:2010-01-23 09:28:19

标签: android android-manifest

我有一个包含多个活动的应用程序。 My A Activity具有Manifest Intent过滤器参数:action.MAIN 和category.LAUNCHER。在它被加载后我称之为活动B和 完成()因为我不再使用它了。

运行我的应用程序后,从活动A转到B并按Home 按钮,当我从应用程序菜单或从中重新启动它时 它的市场应用程序(不是通过长按主页按钮),它开始 来自A活动,不保存其最后一个活动B.

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

有没有人知道如何实现它,以便我的应用程序可以重新启动 从上一个活动B?

由于 ayanir

3 个答案:

答案 0 :(得分:5)

虽然我知道这是一个老问题,但我正在努力解决这个问题而无法在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);

答案 1 :(得分:1)

最近有一些非常相似的问题。最好先搜索网站,以确保不会询问重复的问题。

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

Android: keep task's activity stack after restart from HOME

答案 2 :(得分:0)

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

的文档