android中的状态保存
16lz
2021-01-23
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 SQLite数据库基本操作示例
- Android动态添加删除recycleview并动态保存recycleview中的的数
- Android异步线程OkHttp Post请求Json数据并解析
- android表格数据移动功能
- android之sqlite数据库初级
- Android GridView,Gallery动态更新数据
- Android bundle传递数据简例
- Android 原生SQLite数据库操作实战
- android中ListView的分页加载数据实现