安卓开发中,onSaveInstanceState和onRestoreInstanceState,调用时机分析

onSaveInstanceState和onRestoreInstanceState(给当前 MainActivity配置了singleInstance)
当按下home键的时候,调用如下:
12-08 /yyy: MainActivity--  onPause
12-08 /yyy: MainActivity--  onSaveInstanceState(Bundle outState)
12-08 /yyy: MainActivity--  onStop
再次点击桌面icon开启activity,执行如下:
12-08 /yyy: MainActivity--  onNewIntent 获取在onSaveInstanceState保存的数据null(标准模式不执行该方法)
12-08 /yyy: MainActivity-- onRestart
12-08 /yyy: MainActivity--  onStart
12-08 /yyy: MainActivity--  onResume
发现,并未执行onRestoreInstanceState,由此得出结论 onSaveInstanceState和onRestoreInstanceState并不总是成对出现的。 onNewIntent并不能获取save的值,那么存在onSaveInstanceState里面的值,怎么样才能取出来呢


当横屏切换到竖屏的时候:
12-08 /yyy: MainActivity--  onPause
12-08 /yyy: MainActivity--  onSaveInstanceState(Bundle outState)
12-08 /yyy: MainActivity--  onStop
12-08 /yyy: MainActivity--  onDestroy
12-08 /yyy: MainActivity--  onCreate获取在onSaveInstanceState保存的数据testStr
12-08 /yyy: MainActivity--  onCreate() configChange = 0
12-08 /yyy: MainActivity--  onStart
12-08 /yyy: MainActivity--  onRestoreInstanceState(Bundle outState) savedInstanceState = testStr
12-08 /yyy: MainActivity--  onResume
由此得出结论,当执行了 onSaveInstanceState之后,只要放进去的有数据,那么可以在onCreate和onRestoreInstanceState的时候,获取存入的数据


当按下back键的时候:
12-08 /yyy: MainActivity--  onPause
12-08 /yyy: MainActivity--  onStop
12-08 /yyy: MainActivity--  onDestroy
会发现并未执行onSaveInstanceState方法

你可能感兴趣的:(安卓开发中,onSaveInstanceState和onRestoreInstanceState,调用时机分析)