Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-按时显示上次查看的活动(主页按钮-->;应用程序快捷方式)_Java_Android_Android Activity_Launcher - Fatal编程技术网

Java Android-按时显示上次查看的活动(主页按钮-->;应用程序快捷方式)

Java Android-按时显示上次查看的活动(主页按钮-->;应用程序快捷方式),java,android,android-activity,launcher,Java,Android,Android Activity,Launcher,我来做这个永恒的问题,到目前为止还没有找到解决方案,我在互联网上搜索了同样的问题,但找到了这个问题的最终解决方案 当我打开两个活动时,我拉动“主页”按钮,然后按下应用程序的快捷键,它会再次显示第一个活动(启动程序活动),然后要返回显示的活动,我必须按下后退按钮 这个问题的解决办法是什么 我想按下应用程序的快捷方式(在按下“主页”按钮离开应用程序后)显示上次显示的活动,而不是显示第一个活动(活动启动器) 提前感谢。当您按下“主页”按钮时,应用程序仍在后台运行finish()如果要返回,请按Home

我来做这个永恒的问题,到目前为止还没有找到解决方案,我在互联网上搜索了同样的问题,但找到了这个问题的最终解决方案

当我打开两个活动时,我拉动“主页”按钮,然后按下应用程序的快捷键,它会再次显示第一个活动(启动程序活动),然后要返回显示的活动,我必须按下后退按钮

这个问题的解决办法是什么

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


提前感谢。

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

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

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

不过,有办法解决这个问题。一个非常简单的方法是在启动时设置一个布尔标志
mRunning
,将其设置为
true
。如果
true
,则在
onStart()
方法上启动第二个
活动的意图;如果为false,则继续执行
setContentView()

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

或者,您的主要活动可能只是一个条目活动,其唯一任务是启动最后一个使用的活动


编辑:我发现了这个重复的问题:这个问题比我的问题好得多。

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

不过,有办法解决这个问题。一个非常简单的方法是在启动时设置一个布尔标志
mRunning
,将其设置为
true
。如果
true
,则在
onStart()
方法上启动第二个
活动的意图;如果为false,则继续执行
setContentView()

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

或者,您的主要活动可能只是一个条目活动,其唯一任务是启动最后一个使用的活动


编辑:我发现了这个重复的问题:这个问题比我的问题好得多。

根据您的主要活动是否由其他活动启动,或者仅由应用程序图标启动,您可以使用更简单的解决方案。如果主活动仅通过应用程序图标启动,则可以使用检查主活动是否作为应用程序的新开始启动,或者用户是否返回,并且主活动是否放在您希望显示的其他活动之上

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

    if (! isTaskRoot()) {
        finish();
    } else {
        ...
    }
}

根据主活动是否由其他活动启动,或者仅由应用程序图标启动,您可以使用更简单的解决方案。如果主活动仅通过应用程序图标启动,则可以使用检查主活动是否作为应用程序的新开始启动,或者用户是否返回,并且主活动是否放在您希望显示的其他活动之上

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

    if (! isTaskRoot()) {
        finish();
    } else {
        ...
    }
}

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

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

我不明白,我想按我的应用程序的快捷方式(在按Home按钮离开我的应用程序后)显示上次显示的活动,而不是显示第一个活动(活动启动器)。哦,对不起,我误解了。然后,您的应用程序可能因内存而被终止。您可以做的是为应用程序创建一个SharedReference,每次活动更改时都会更新首选项。然后,当应用程序重新启动时,检查首选项并直接跳到所需的活动。我不明白,我想按应用程序的快捷方式(在按Home按钮离开应用程序后)显示上次显示的活动,而不是显示第一个活动(activity launcher)。哦,对不起,我误解了。然后,您的应用程序可能因内存而被终止。您可以做的是为应用程序创建一个SharedReference,每次活动更改时都会更新首选项。然后,当应用程序重新启动时,检查首选项并直接跳到所需的活动。可能重复的可能重复的可能重复的感谢“Aleadam”,您传递给我的链接,是问题的解决方案。我已经实现了,并且工作得非常完美。谢谢“Aleadam”,您传递给我的链接,是问题的解决方案。我已经实现了,工作非常完美。