Android 返回应用程序后重新创建的第一个活动 背景
我有一个非常奇怪的情况,我从来没有在我创建的任何应用程序上看到过 该应用程序有多个活动,而第一个活动用于某些初始化和启动屏幕 问题 假设应用程序具有活动“A”、“B”、“C”、,最终用户从“A”(启动屏幕的第一个)转到“B”,然后按home键,通过单击启动器上的图标返回应用程序 简言之,情况是: 应用程序启动->活动A(启动)->活动B->按下主页->返回应用程序(通过启动程序)-> 预期结果:应用程序应返回到显示的最后一个活动,这意味着“?”=活动B 实际结果:应用程序实际返回到活动“A”,意思是“?”=活动A,然后返回到我离开它的活动(在本例中为B) 清单和代码中都没有太多可显示的内容,因为它们都是非常标准的 解决问题的线索 然而,有一些线索可能会说明这一原因:Android 返回应用程序后重新创建的第一个活动 背景,android,android-activity,actionbarsherlock,roboguice,Android,Android Activity,Actionbarsherlock,Roboguice,我有一个非常奇怪的情况,我从来没有在我创建的任何应用程序上看到过 该应用程序有多个活动,而第一个活动用于某些初始化和启动屏幕 问题 假设应用程序具有活动“A”、“B”、“C”、,最终用户从“A”(启动屏幕的第一个)转到“B”,然后按home键,通过单击启动器上的图标返回应用程序 简言之,情况是: 应用程序启动->活动A(启动)->活动B->按下主页->返回应用程序(通过启动程序)-> 预期结果:应用程序应返回到显示的最后一个活动,这意味着“?”=活动B 实际结果:应用程序实际返回到活动“A”,意
if (!isTaskRoot()) {
finish();
return;
}
我不知道你为什么会有这样的问题,但这可能与我从未使用过的RoboSplashActivity有关,所以我不知道。不过,我的一条评论是,在使用一个活动初始化后续活动所依赖的状态数据时一定要小心,因为完全有可能(而且非常频繁)恢复活动堆栈,但所有内存和状态都会被删除,包括应用程序类和其他单例/静态数据。我知道,启动屏幕活动是此问题的主要嫌疑。然而,他们怎么能在安卓系统本身上实施一种特殊(而且奇怪)的行为呢?我的意思是,他们将如何使其工作,使此活动不断被重新创建为第一个活动?对我来说似乎很奇怪,尤其是当回到这个活动时,所有的东西都已经初始化了。如果启动程序启动了,那么当你按下它时就会创建一个。不管你之前把应用程序放在哪里……那么,它怎么会在启动屏幕后回到我之前的活动状态呢?此外,我认为这与你如何设置你的应用程序有关。例如,试用facebook应用程序,进入设置屏幕。然后按HOME并通过启动器返回应用程序。@WarrenFaith,你错了,你可以自己检查。创建一个包含2个活动的全新应用程序,每个活动在onCreate方法上显示不同的toast,而第一个活动在显示toast后立即启动第二个活动。然后按HOME,然后单击启动程序中应用程序的图标。