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”,您传递给我的链接,是问题的解决方案。我已经实现了,工作非常完美。