android中的状态保存
16lz
2021-12-19
阅读更多
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 保存和读取文件
- Android(安卓)Kotlin继承
- Android根据包名清理App数据
- Android常用的简单代码
- Android数据库操作
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- 箭头函数的基础使用
- python起点网月票榜字体反爬案例