我有一个活动启动其他一些活动以获取结果,因此当结果返回时,该活动可能已被销毁并重新创建,也可能没有。
我重写了 onSaveInstanceState 以添加需要保存和恢复的数据。
当 Activity 被销毁并重新创建时,onCreate 会传递 savingInstanceState 包;但alsoonRestoreInstanceState() 被调用并传递相同的包。
那么我应该把从包中提取数据并恢复状态的代码放在哪里呢?在 onCreate 中还是在 onRestoreInstanceState 中?后者保证总是被调用吗?
是否有可能在不调用onCreate的情况下调用onRestoreInstanceState? (例如,如果活动停止并重新启动但未销毁并重新创建)?
“您可以选择实现 onRestoreInstanceState(),而不是在 onCreate() 期间恢复状态,系统会在 onStart() 方法之后调用 onRestoreInstanceState()。仅当存在要恢复的已保存状态时,系统才会调用 onRestoreInstanceState(),因此您不必需要检查Bundle是否为NULL”
以下链接非常清楚地解释了重新启动活动。
安卓指南 http://developer.android.com/training/basics/activity-lifecycle/recreating.html#RestoreState
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)