2

我是来做永恒的问题的,至今没有找到解决办法,我在网上搜索了同样的问题,但找到了这个问题的最终解决方案。

当我打开 2 个活动并拉动“主页按钮”然后按下我的应用程序的快捷方式时,它再次向我显示第一个活动(启动器活动),然后返回显示的活动,我必须按返回按钮。

这个问题的解决方案是什么?

我想按下我的应用程序的快捷方式(在按下主页按钮离开我的应用程序后)显示最后一个活动显示,而不是显示第一个活动(活动启动器)。

提前致谢。

4

4 回答 4

0

当您按下主页按钮时,您的应用程序仍在后台运行。finish()如果要返回,则按 Home 按钮时的活动。

于 2011-06-15T21:40:35.830 回答
0

这是预期的行为。启动器将使用过滤器启动 Activity android.intent.action.MAIN

不过,有一些方法可以解决它。一个非常简单的方法是在启动mRunning时设置一个布尔标志。true如果true,那么在onStart()你开始一个意图的方法上启动你的第二个Activity;如果为假,则继续setContentView()

如果您有多个活动要返回,那么可行的方法是将当前活动保存在SharedPreferences其中并以相同的方式启动它。

或者,您的主 Activity 可能只是一个条目 Activity,其唯一工作是启动最后使用的 Activity。

编辑:我发现了这个重复的问题:How to make an android app return to last open Activity when relaunched? 那比我的有更好的答案。

于 2011-06-15T22:13:49.463 回答
0

根据您的主要活动是由另一个活动启动还是仅由应用程序图标启动,您可以使用更简单的解决方案。如果您的主要活动仅由应用程序图标启动,您可以使用isTaskRoot()检查您的主要活动是否作为应用程序的新开始启动,或者用户是否正在返回并且主要活动是否位于顶部您希望显示的其他活动。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (! isTaskRoot()) {
        finish();
    } else {
        ...
    }
}
于 2014-09-09T21:26:53.363 回答
0

当您想要打开另一个 Activity 时,您可以使用 startActivityForResult 替换 startActivity。

于 2017-11-28T07:52:35.533 回答