【发布时间】:2010-11-08 18:04:20
【问题描述】:
我有一个带有启动画面的 Android 应用。
此初始屏幕预加载数据,完成后启动应用程序的主要活动并完成(通过 finish() 调用)。
只要应用程序没有被完全杀死,它就可以很好地工作。所以,我通常可以像往常一样在不同的任务之间来回切换:当我从一个子活动中离开应用程序并在我看到这个子活动后不久返回时。
现在,当我离开这个子活动并做一些其他事情时,这个应用程序进程不可避免地会被操作系统杀死。
目前没有问题。现在我希望 Android 不知道我的预加载(如果数据没有预加载,它只会花费更长的时间或不显示某些字体,但 Android 无法意识到我正在某处进行预加载的事实),以恢复子活动从一个捆绑包。然而,启动屏幕活动已启动。
所以,我说,那很好......启动屏幕活动毕竟是启动器/主要活动。现在,我真正的谜团如下。
当我从这个新加载的初始屏幕按下后退按钮时,我将看到我在应用程序被杀死之前离开应用程序的子活动。我真的不明白这个。显然,Android DID 保存了要重新加载的子活动的状态(及其历史堆栈),但它没有重新加载,而是选择启动启动屏幕,而这个子活动(我在它被杀死之前早些时候离开了任务)退一步活动堆栈。
为什么会这样?
当进程没有被终止时,我可以切换回我离开的地方。当它被杀死时,我不能(但仍然恢复了该应用程序的整个早期历史)。我知道在后一种情况下,Android 必须加载状态等,但这应该不是问题,默认情况下会自动执行(根据文档)。
附:我没有做任何花哨的事情。默认启动标志,无覆盖状态恢复方法等。
【问题讨论】:
-
在这里尝试按照您的步骤... 子活动 -> 启动画面
标签: android android-activity splash-screen back