activity 临时数据保存和恢复

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

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

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

@Override protected 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的各生命周期打印一下,很简单的.

你可能感兴趣的:(android,数据)