两个onCreate()方法
来源:互联网 发布:网络改造方案 编辑:程序博客网 时间:2024/06/06 06:37
问题
前几天写一个Activity的时候,发现出来的是一个空界面,也不报错。这样心态就很崩嘛,后来一个个在onCreate方法中打印信息,发现onCreate方法根本就没有执行….然后发给学长看了下,原来是选错了onCreate()方法进行重载。
一般我们都是选择第一个,那天我选了第二个,所以问题就出现了。
那么,第二个到底是用来干嘛的呢?为了清楚自己犯了什么错误,在网上了解了一下。
问题解决
Activity的onCreate()是编写一个activity最先重载的方法。
它是Activity整个生命周期中的第一个方法。我们的界面初始化,数据初始化等等,都会在这里面实现。
第一个参数 savedInstanceState
从字面上看saveInsanceState,是保存实例状态的。实际上,saveInsanceState也就是保存Activity的状态的。saveInsanceState中的状态数据是通过onsaveInsanceState方法中保存Activity的状态而来的。当一个Activity在生命周期结束前,会调用该方法保存状态。
第二个参数 persistentState
第一个参数当Activity在手机旋转,内存不足导致的后台自动销销毁时,再次启动可以通过onCreate方法中的savedInstance参数拿到我们的数据。
那当我们的手机异常关机的时候,例如手机过热自动关机,没电自动关机或者卡顿后强制重启,是否依然可以找回前台数据呢?
这就是我们第二个参数的作用,他实际上是一种数据持久化的Activity。
第二个参数的使用
首先,我们需要在Android 的清单文件的Activity中指定如下属性:
android:persistableMode="persistAcrossReboots"
接着重载onSaveInstanceState或者onRestoreInstance:
@Override public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) { super.onSaveInstanceState(outState, outPersistentState); }@Overridepublic void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState) { super.onRestoreInstanceState(savedInstanceState, persistentState);}
onSaveInstanceState调用时机是当前Activity即将被销毁而还未被销毁的时候。而当系统调用了onRestoreInstance就表示这个Activity已经被销毁了。
- 两个onCreate()方法
- android onCreate的两个方法
- Android onCreate方法两个参数和一个参数的区别
- bug修复-android中的onCreate两个参数的方法是什么鬼?
- bug修复-android中的onCreate两个参数的方法是什么鬼?
- Andriod中的onCreate方法
- Android OnCreate、setContentView方法
- onCreate()方法详解
- Android(一)onCreate方法
- android 的onCreate 方法
- MFC ActiveX 触发OnCreate方法
- MFC ActiveX 触发OnCreate方法
- 屏幕旋转会重启onCreate方法
- 屏幕旋转会重启onCreate方法
- 屏幕旋转会重启onCreate方法
- 解析Activity中的onCreate方法
- Android开发,onCreate()方法介绍
- OnCreate
- 【VUE】使用Table组件进行数据双向绑定
- Paxos的工程实践之Chubby。
- android开发Enum (枚举)的更轻量级的替代方案 —— @IntDef的使用
- spring boot实战(第六篇)加载application资源文件源码分析
- VM 虚拟机屏幕大小的调整
- 两个onCreate()方法
- centos7搭建owncloud私有云
- Deep Learning based Recommender System: A Survey and New Perspectives (2)
- 当指针作为局部指针变量时的注意事项
- js做分页函数
- 大数据开发是先学习Hadoop还是spark,看10万程序猿所留下的结论
- Hadoop 环境设置
- 很赞的一款JS压缩/混淆器:Javascript Obfuscator v4.0
- Spring Boot对Spring MVC的配置