onRestoreInstanceState(Bundle savedInstanceState)只有在activity确实是被系统回收,重新创建activity的情况下才会被调用.
系统会调用ActivityThread的performStopActivity方法中调用onSaveInstanceState,将状态保存在mActivities中,mActivities维护一个Activity的信息表,当Activity重启时候,会从mActivities中查询到对应的ActivityClientRecord.
如果有信息,则调用Activity的onRestoreInstanceState方法.
在ActivityThread的performLaunchActivity方法中,统会判断ActivityClientRecord对象的state是否为空
不为空则通过Activity的onSaveInstanceState获取其UI状态信息,通过这些信息传递给Activity的onCreate方法.