首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android中的状态封存

2013-04-20 
android中的状态保存package com.zzl.callimport android.app.Activityimport android.content.SharedPr

android中的状态保存

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();    }        }

热点排行