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中的状态保存
猜你喜欢
转载自android-zhang.iteye.com/blog/1842985
今日推荐
周排行