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();
}
}
android中的状态保存
最新推荐文章于 2025-08-10 12:00:48 发布