继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

qq_Inmylife_1
关注TA
已关注
手记 4
粉丝 2
获赞 37

当活动处于停止状态时,由于系统的内存不足,可能会被回收,导致临时数据丢失,影响用户体验。可以使用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");
}
……
}
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP