onSaveInstanceState调用时机

问题:

①在阅读Android开发艺术中描述onSaveInstanceState调用时机位于onStop之前,但是基于Android10的测试,onSaveInstanceState调用实际恰好位于onStop之后

  • 测试:startActivity
    onSaveInstanceState调用时机
    - 测试:关闭电源
    onSaveInstanceState调用时机
    - 测试:Home按钮
    onSaveInstanceState调用时机
    - 测试:打开切换后台程序
    onSaveInstanceState调用时机
    - 测试:配置变化(屏幕旋转)
    onSaveInstanceState调用时机
    - 测试:资源紧张(待测试)

结论:这是基于我的Android10的测试结论,仅个人理解,个人能力有限,仅基于推测,具体源码还得进一步学习,有不对的地方可补充的地方还请指正说明 onSaveInstanceState调用时机

结论注解:
①资源紧张:高优先级进程资源紧张,导致当前低优先级资源被回收(前台进程->可见进程->后台进程)
②配置变化:常见locale(系统语言发生改变)、orientation(屏幕横竖显示方向改变,api13后需要结合screenSize使用)、keyboardHidden(键盘的可访问性)等,可通过配置configChanges的变化,禁止Activity重启。