为了账号安全,请及时绑定邮箱和手机立即绑定

onSaveInstanceState():解决活动被回收时,临时数据丢失问题

标签:
Android

当活动处于停止状态时,由于系统的内存不足,可能会被回收,导致临时数据丢失,影响用户体验。可以使用onSaveInstanceState()方法保存临时数据。因为onSaveInstanceState()方法一定会在活动被回收之前调用。
onSaveInstanceState()中携带一个Bundle类型的参数。——Bundle提供一系列的方法用于保存数据,比如:putString() 保存字符串;putInt() 保存整数类型等。每个保存方法以键—值对的形式保存数据(键用于后面从Bundle中取值)。
保存数据:

protected void onSaveInstanceState(Bundle bundle){
super.onSaveInstanceState(outState);
String tempData = textView.getText();//textView指活动中声明的TextView控件
bundle.putString("data",tempData);
}

恢复数据:在onCreat()方法中有Bundle类型的参数,一般情况下都是null。但是当活动被系统回收之前有通过onSaveInstanceState()方法来保存数据的话,这个参数就会带有之前所保存的全部数据,只需要再通过相应的取值方法将数据取出即可。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//隐藏标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
if (savedInstanceState != null) {
String tempData = savedInstanceState.getString("data");
}
……
}
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消