我的申请中有三项活动。
从第一个开始我开始第二个,从第二个开始我开始第三个。当我的应用程序被系统杀死并且我再次启动它时,我看到只创建了最后一个活动活动。而且似乎唯一一个将Bundle对象作为其onCreate方法的参数。
我很好奇有两件事:
如果堆栈顶部的活动是唯一获取其捆绑包的活动,为什么我的每个活动都在其onStop()方法之前调用它们的回调(onSaveInstanceState)。
如果我的一项活动只能保留原始状态,那么其他活动呢?他们是否因为系统决定杀死我的应用流程而失去了所有状态?我应该手动恢复吗?对他们的看法怎么样? (通常情况下,视图可以恢复状态而不需要我将某些东西放入捆绑包中,如果我没有记错的话可以在以后恢复)
答案 0 :(得分:0)
答案 1 :(得分:0)
默认行为是这个(在4.1.1上测试):
onSaveInstanceState
onRestoreInstanceState
onRestoreInstanceState
传递从上面第一步获得的捆绑包来恢复每个活动的状态。因此,您的问题的答案是:
onSaveInstanceState
实现的情况下未覆盖onRestoreInstanceState
或super
b)应恢复的视图具有唯一ID在视图层次结构中