首页 > 学院 > 开发设计 > 正文

activity 临时数据保存和恢复

2019-11-09 15:16:06
字体:
来源:转载
供稿:网友

在使用app的过程中有可能会发生突发情况,杀死我们的APP?

    突发情况有哪些呢?比如屏幕旋转,按Home键,recreate(),锁屏,手机内存不够APP被Kill等,那么有这些情况我们数据还没来的几保存应该怎么做呢?Google已经有了办法了,那就是覆盖onSaveInstanceState()方法来接受一个Bundle类型的参数,我们可以将该activity的信息和状态数据存入此Bundle中。这样,即使该activity在后台被系统摧毁,然后重新回到前台的时候,在调用onCreate()方法时,该Bundle对象会传入onCreate方法的参数中。开发者可以在onCreate中取出自己保存的数据。

比如我有一个recreate 的页面,需要保存一个临时变量isSelected来判断用户是否点击了页面.实现如下:

@OverridePRotected void onSaveInstanceState(Bundle outState) {    super.onSaveInstanceState(outState);    outState.putBoolean("isSelected", isSelected);}那么如何恢复保存的数据呢?onCreate()方法的函数中有一个Bundle saveInstanceState 的参数,没错数据就是存储在这里的
protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    if (savedInstanceState != null) {        isSelected = savedInstanceState.getBoolean("isSelected");    }

在哪里调用saveInstanceState,大家可以在activity的各生命周期打印一下,很简单的.


上一篇:屏幕适配

下一篇:指定浏览器打开网站

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表