onSaveInstanceState()以及onRestoreInstanceState()
-
Activity完整的生命周期
onCreate()
–>onStart()
–>onRestoreInstanceState()
–>onResume()
–>onSaveInstanceState()
–>onPause()
–>onStop()
–>onDestroy()
-
有关 onSaveInstanceState 以 及onRestoreInstanceState 这两个方法我们都知道是用于
Activity
销毁和重建时数据的保存。 - 按Back键或者是调用finish()方法去主动销毁Activity时,这时候系统会认为是我们不再需要该
Activity
,系统不会执行 onSaveInstanceState 。 - 按Home键直接将程序后台,这时候系统会执行 onSaveInstanceState() 这时候系统知道不是你不需要这个Activity只是后台了。
此时我们唤醒应用,不会执行 onRestoreInstanceState 这个方法,因为我们后台再唤醒后该Activity
并没有销毁重建,所以这时候就不会去调用 onRestoreInstanceState 。 - 按Home键会执行 onSaveInstanceState ,然后系统由于内存不足将进程杀死了,这时候系统就感觉自己做的不对,要给你恢复状态,当我们再次启动程序的时候就会执行 onRestoreInstanceState 这个方法来给我们恢复数据。
- 在默认的
Activity
中,如果进行横竖屏切换的时候系统会销毁并且重新创建Activity
,这时候系统就会执行 onSaveInstanceState 以及 onRestoreInstanceState ,因为这是系统把Activity
给销毁了,系统要负责就执行这两个方法来给你保存和恢复数据。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步