Android onCreate 的savedInstanceState 作用

在activity的生命周期中,只要离开了可见阶段,或者说失去了焦点,activity就很可能被进程终止了!,被KILL掉了,,这时候,就需要有种机制,能保存当时的状态,这就是savedInstanceState的作用。
当一个Activity在PAUSE时,被kill之前,它可以调用onSaveInstanceState()来保存当前activity的状态信息(在paused状态时,要被KILLED的时候)。用来保存状态信息的Bundle会同时传给两个method,即onRestoreInstanceState() and onCreate().
示例代码如下:
package com.myandroid.test;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class AndroidTest extends Activity {
     private static final String TAG = "MyNewLog";
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // If an instance of this activity had previously stopped, we can
        // get the original text it started with.
        if(null != savedInstanceState)
        {
            int IntTest = savedInstanceState.getInt("IntTest");
            String StrTest = savedInstanceState.getString("StrTest");
            Log.e(TAG, "onCreate get the savedInstanceState+IntTest="+IntTest+"+StrTest="+StrTest);
        }
        setContentView(R.layout.main);
        Log.e(TAG, "onCreate");
    }

    @Override
    public void onSaveInstanceState(Bundle savedInstanceState) {
        // Save away the original text, so we still have it if the activity
        // needs to be killed while paused.
      savedInstanceState.putInt("IntTest", 0);
      savedInstanceState.putString("StrTest", "savedInstanceState test");
      super.onSaveInstanceState(savedInstanceState);
      Log.e(TAG, "onSaveInstanceState");
    }

    @Override
    public void onRestoreInstanceState(Bundle savedInstanceState) {
      super.onRestoreInstanceState(savedInstanceState);
      int IntTest = savedInstanceState.getInt("IntTest");
      String StrTest = savedInstanceState.getString("StrTest");
      Log.e(TAG, "onRestoreInstanceState+IntTest="+IntTest+"+StrTest="+StrTest);
    }
}

转自:http://blog.csdn.net/xiaoxiao_job/article/details/5852811

时间: 2024-10-13 00:13:26

Android onCreate 的savedInstanceState 作用的相关文章

AIDL在android系统中的作用

AIDL,Android Interface definition language的缩写,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口.最近看了下AIDL在Android系统中的用法,在网上看到很多初学的朋友不太明白AIDL的实际作用,android提供了很多进程间通信的组件,像action.broadcast.contentprovide都可以实现进程间的通信,为什么还要用AIDL这个东西呢?我在android源码中实现了一个自己写的AIDL例子,用以

Android——onCreate( )方法详解(转)

android开发之onCreate( )方法详解 onCreate( )方法是android应用程序中最常见的方法之一,那么,我们在使用onCreate()方法的时候应该注意哪些问题呢? 先看看Google Android Developers官网上的解释: onCreate(Bundle) is where you initialize your activity. Most importantly, here you will usually call setContentView(int

[转]Android 中Parcelable的作用

转自: http://blog.sina.com.cn/s/blog_78e3ae430100pxba.html android提供了一种新的类型:Parcel.本类被用作封装数据的容器,封装后的数据可以通过Intent或IPC传递. 除了基本类型以 外,只有实现了Parcelable接口的类才能被放入Parcel中. Parcelable实现要点:需要实现三个东西 1)writeToParcel 方法.该方法将类的数据写入外部提供的Parcel中.声明如下: writeToParcel (Pa

Android笔记——Application的作用

一.Application是什么 Application和Actovotu,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息.通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application并在manifest的application标签中进行注册(只需要给Application标签增加个name属

关于onCreate(Bundle savedInstanceState, PersistableBundle persistentState)

API 21为Activity增加了一个新的属性,只要将其设置成persistAcrossReboots,activity就有了持久化的能力,另外需要配合一个新的bundle才行,那就是PersistableBundle. onCreate(Bundle savedInstanceState, PersistableBundle persistentState) Same as onCreate(android.os.Bundle) but called for those activities

Android onCreate onStart onResume onPause onStop onDestroy

Android中一个Activity一般都需要实现六个函数: onCreate(), onStart(), onResume(),onPause(),onStop(),onDestroy(). onCreate函数:注册你要用到的变量,比如说service,receiver,这些变量是无论你的Activity是在前台还是在后台都能够被响应到的,然后调用上面那个用来初始化的函数初始化布局信息. onStart函数:注册一些变量.这些变量必须在Android Activity类在前台的时候才能够被响

Android学习—Application的作用

What is Application Data passing between components using Application Data caching in Application PitFalls MemoryLeak Snippets 学习android挺长时间了,但是对于Appliction还不是很了解.今天花一些时间研究了一下Application. What is Application Application和Actovotu,Service一样是android框架的一

Android Support 包的作用、用法

1, Android Support V4, V7, V13是什么?本质上就是三个java library. 2,  为什么要有support库?如果在低版本Android平台上开发一个应用程序,而应用程序又想使用高版本才拥有的功能,就需要使用Support库. 3, 三个Support 库的区别和作用是什么?Android Support v4 是最早(2011年4月份)实现的库.用在Android1.6 (API lever 4)或者更高版本之上.它包含了相对V4, V13大的多的功能. 

Androidmanifest.xml在Android项目中的作用

以下是一个项目中的AndroidManifest.xml文件: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="tw.suggest"                                //指定项目中的程序文件的包