android中的状态保存

本文介绍在Android应用开发中如何使用onSaveInstanceState与onRestoreInstanceState方法保存与恢复Activity的状态,并利用SharedPreferences在onPause与onResume间存储与读取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.zzl.call;

import android.app.Activity;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.widget.Toast;
/**
* Activity状态的保存
*
*
* 第一,在onSaveInstanceState函数中进行数据的保存
* 这个函数只有在Activity销毁的时候才会被调用,按下home键、back键不会调用此函数。
* 在onCreate函数中获取保存的数据。
* 在2.0之后又出现了一个函数叫:onRestoreInstanceState获取保存的数据,
* 这个函数在onCreate函数之后调用。
* 如果onCreate函数中不进行try的话会报如下异常。
* java.lang.NullPointerException

*
*
*第二,在onPause函数中进行数据的保存,在onResume中取出数据。
*此时就要用到 SharedPreferences 。
*/
public class MainActivity extends Activity {

private SharedPreferences sharedPreferences;
private SharedPreferences.Editor editor;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
String str = savedInstanceState.getString("key");
} catch (Exception e) {
e.printStackTrace();
}



sharedPreferences = this.getSharedPreferences("test",MODE_WORLD_READABLE);
editor = sharedPreferences.edit();

}
@Override
protected void onResume() {
//第二个参数的含义是如果获取不到数据,就以这个作为返回值
String name = sharedPreferences.getString("name", "阿弥陀佛");
Toast.makeText(this, name, 0).show();
super.onResume();
}

@Override
protected void onSaveInstanceState(Bundle outState) {
if(outState != null){
outState.putString("key", "value");
}
super.onSaveInstanceState(outState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}

@Override
protected void onPause() {
editor.putString("name", "无敌小神胖");
// 一定要提交
editor.commit();

super.onPause();
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值