Activity onSaveInstanceState(Bundle)

Activity完整的生命周期是从onCreateonDestory; 显示的生命周期从onStartOnStop;广播的注册和反注册可以放在到这里 前台周期是onResumeonPause;当设备休眠,或者接受intent,都会进入这个周期,所以这两个函数中代码需要非常的轻量级。 生命周期如下:

onpause之后Activity都可能被杀掉,所以最好把数据的持久化存储放到onpause里面处理。

onSaveInstanceState

当一个activity被杀之前会调用onSaveInstanceState,这个时候可以保存activity的当前信息到指定的Bundle中,当再次回到这个activity的时候,可以在onCreate 或者 onRestoreInstanceState中恢复状态。 Android P版本以后 onSaveInstanceState 在onStop之后调用,之前的版本 在onStop之前调用,并且不确定是onPause之前还是之后。

    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        // 从savedInstanceState中恢复数据, 如果没有数据需要恢复savedInstanceState为null  
        if (savedInstanceState != null) {  
            temp = savedInstanceState.getString("temp");  
            System.out.println("onCreate: temp = " + temp);  
        }  
    }  
    @Override  
    protected void onSaveInstanceState(Bundle outState) {  
        super.onSaveInstanceState(outState);  
        outState.putString("temp", temp);  
    }  
复制代码

转载于:https://juejin.im/post/5c8753e26fb9a049b222b753

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值