Android学习随笔之活动或碎片回收 临时数据的保存

触发条件

 任何活动被回收的场景

解决办法

活动中提供了一个onSaveInstanceState,这个方法会在活动被回收前调用,因此可以

通过此方法保存数据

     onSaveInstanceState 需要传递一个Bundle类型的参数

    Bundle提供了一些方法用于保存数据

    常见的有putInt..PutString

    保存的方式也很简单直接PutString("key",value);即可

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString("test","1");
}

恢复数据的方法

因为活动被回收了再次调用活动的时候可能不会触发onRestart 而是重新创建活动 onCreate

下面是在碎片里面做的操作所以没有

setContentView(R.layout.main_layout);

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if(savedInstanceState!=null){
        String data=savedInstanceState.getString("test");
    }
}

每次这样做感觉好麻烦啊无意间发现一个大神做的一个自动化保存的文章

Android 一个轻量级的自动恢复内存数据框架



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值