当活动处于停止状态时,由于系统的内存不足,可能会被回收,导致临时数据丢失,影响用户体验。可以使用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 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦