博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
onSaveInstanceState(Bundle outState)的调用时机
阅读量:7172 次
发布时间:2019-06-29

本文共 602 字,大约阅读时间需要 2 分钟。

 原文摘自: http://handsomeliuyang.iteye.com/blog/1407044

 

Activity的方法onSaveInstanceState(Bundle outState),按照文档里说的,这个方法是在内存不够时,系统要强制杀掉这个Activity时,进行调用的。

 

但经过我的测试,发现这个方法并不是在系统内存不够时,要杀掉Activity时,才调用的。

 

测试结果:

1. 只要Activity不finish,Activity进入后台(比如Home键,跳转到其他的Activity),则其就会调用onSaveInstanceState(Bundle outState)方法,而且这个方法是在onPause方法之间进行调用的。

2. 如果Activity是执行了finish方法,才进入的后台,则不调用这个onSaveInstanceState(Bundle outState),而且下次再进入时,也不会使用这个保存的数据。

3. 在系统杀掉Activity所在的进程时,onSaveInstanceState(Bundle outState)方法根本就没有调用过。

 

总结:系统在杀进程时,不可能有时间去执行多余的代码,也只有这种方法,才能保存Activity里的最新数据,所以onSaveInstanceState(Bundle outState)会被执行多次,并不是只有一次。

转载地址:http://gefzm.baihongyu.com/

你可能感兴趣的文章
Eclipse SVN插件设置
查看>>
Java中private、protected、public和default的区别-001
查看>>
react 关于this.setState使用时,第一次无法获取数据,第二次获取的数据是第一次触发的疑问...
查看>>
CCF NOI1123 A-B
查看>>
毛无语大学看过的书单
查看>>
Ubuntu的默认root密码
查看>>
Vue+Element+Select获取选中的对象
查看>>
Ubuntu下Tomcat连接MySql数据库
查看>>
JAV基础学习
查看>>
零散的小知识
查看>>
WPF Summary 系列指导(连载中…^_^)
查看>>
feof()的实现
查看>>
VS中Debug与Release、_WIN32与_WIN64的区别
查看>>
真正通用的SQL分页存储过程
查看>>
coredump的裁剪方法
查看>>
精选30个优秀的CSS技术和实例
查看>>
洛谷P5206 数树
查看>>
20160509-hibernate--继承映射
查看>>
删除字符串最后一个字符的几种方法
查看>>
extjs apply,applyif,override,extend 的区别
查看>>