在Android中,如果我们运行某个程序,然后又有其他的程序在运行,这是如果系统内存不足,先前运行的那个程序会被系统杀死。那么如何恢复之前的数据呢,此时就应该用到savedInstanceState。

下面就通过一个例子实现这个操作。

首先,在布局界面上添加一个EditText

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity"    android:orientation="vertical" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/hello_world" />    <EditTextandroid:id="@+id/txt"android:layout_height="wrap_content"android:layout_width="match_parent"android:hint="test"/></LinearLayout>
然后,在程序中调用onSaveInstanceState函数,这个函数会在程序异常退出时调用,所以我们将需要保存的数据存储在里面,等到下次程序运行时调用onCreate函数,我们就可以取出保存的数据了。

package com.sl.activitydemo;import android.os.Bundle;import android.widget.EditText;import android.app.Activity;public class MainActivity extends Activity {private static final String CONTENT = "content";private EditText txt = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);txt=(EditText)findViewById(R.id.txt);if (null!=savedInstanceState&&savedInstanceState.containsKey(CONTENT)){txt.setText(savedInstanceState.getString(CONTENT));}}@Overrideprotected void onSaveInstanceState(Bundle outState)//保存Activity的状态{super.onSaveInstanceState(outState);String content=txt.getText().toString();outState.putString(CONTENT, content);}}
效果如图

好了,关于onSaveInstanceState就到这了。


更多相关文章

  1. C语言函数的递归(上)
  2. Android应用程式编译成系统程序
  3. Android系统进程Zygote启动过程的源代码分析(1)
  4. Android程序员的进阶之路
  5. Android(安卓)SurfaceFlinger对VSync信号的处理过程分析
  6. 论文相关笔记1
  7. Android程序界面主题切换
  8. Android电源管理机制分析(zz)
  9. 【Android】使用SharedPreferences判断应用程序是否首次启动

随机推荐

  1. 谈谈我自己对android开发的理解
  2. 【Android】Android聊天机器人实现
  3. 对于android触摸事件模型的一些理解
  4. Android线程模型解析(包括UI的更新)
  5. IOS的专利?Android也能流畅实现毛玻璃效果
  6. android 条码识别软件开发全解析
  7. android基本理解
  8. 10个经典的Android开源应用项目
  9. 快速的APK厂商快速和免费的Android应用软
  10. Android中AsyncTask(异步任务)和Handler(