我有一个带有启动画面的Android应用程序。
这个启动画面预加载数据,当完成后启动应用程序的主活动并结束(通过finish()调用)。
只要应用程序没有完全被终止,这就很有效。因此,我通常可以像往常一样在不同任务之间切换:当我从子活动离开应用程序并很快返回时,我将看到这个子活动。
现在,当我离开这个子活动并做一些其他事情一段时间后,这个应用程序进程不可避免地被操作系统终止。
到目前为止还没有问题。现在我希望Android能够恢复子活动的状态(如果数据没有预加载,它只需要更长时间或者不显示某些字体,但Android无法意识到我正在某个地方进行预加载),然而启动画面活动却被启动了。
所以我说,那好吧......启动画面活动毕竟是启动器/主要活动。现在,我真正不明白的是:
当我从新加载的启动画面按下返回按钮时,我将看到我之前离开应用程序时的子活动。我真的不明白这是为什么。显然,Android保存了子活动的状态(和它的历史堆栈)以便重新加载,但它选择启动启动画面活动,而不是重新加载子活动(我之前离开了任务),并将其置于活动堆栈的后面一步。
为什么会发生这种情况?
当进程没有被终止时,我可以回到离开的地方。当它被终止时,我就不能(但仍然恢复了整个应用程序的早期历史记录)。我知道Android在后一种情况下必须加载状态等等,但这不应该是一个问题,并且默认情况下自动执行(根据文档)。
附言:我没有做任何花哨的事情。默认的启动标志,没有覆盖状态恢复方法等。
这个启动画面预加载数据,当完成后启动应用程序的主活动并结束(通过finish()调用)。
只要应用程序没有完全被终止,这就很有效。因此,我通常可以像往常一样在不同任务之间切换:当我从子活动离开应用程序并很快返回时,我将看到这个子活动。
现在,当我离开这个子活动并做一些其他事情一段时间后,这个应用程序进程不可避免地被操作系统终止。
到目前为止还没有问题。现在我希望Android能够恢复子活动的状态(如果数据没有预加载,它只需要更长时间或者不显示某些字体,但Android无法意识到我正在某个地方进行预加载),然而启动画面活动却被启动了。
所以我说,那好吧......启动画面活动毕竟是启动器/主要活动。现在,我真正不明白的是:
当我从新加载的启动画面按下返回按钮时,我将看到我之前离开应用程序时的子活动。我真的不明白这是为什么。显然,Android保存了子活动的状态(和它的历史堆栈)以便重新加载,但它选择启动启动画面活动,而不是重新加载子活动(我之前离开了任务),并将其置于活动堆栈的后面一步。
为什么会发生这种情况?
当进程没有被终止时,我可以回到离开的地方。当它被终止时,我就不能(但仍然恢复了整个应用程序的早期历史记录)。我知道Android在后一种情况下必须加载状态等等,但这不应该是一个问题,并且默认情况下自动执行(根据文档)。
附言:我没有做任何花哨的事情。默认的启动标志,没有覆盖状态恢复方法等。