activity的onCreate参数 saveInstanceState

   

写过Android程序的都知道Activity中有一个名称叫onCreate的方法。该方法是在Activity创建时被系统调用,是一个Activity生命周期的开始。可是有一点容易被忽视,就是onCreate方法的参数saveInstanceState。因为在一般的程序开发中,很少用到这个参数。

onCreate方法的完整定义如下:

public void onCreate(Bundle saveInstanceState){

super.onCreate(saveInstanceState);

}

从上面的代码可以看出,onCreate方法的参数是一个Bundle类型的参数。Bundle类型的数据与Map类型的数据相似,都是以key-value的形式存储数据的。

从字面上看saveInstanceState,是保存实例状态的。实际上,saveInstanceState也就是保存Activity的状态的。那 么,saveInstanceState中的状态数据是从何处而来的呢?下面我们介绍Activity的另一个方法saveInstanceState。

onsaveInstanceState方法是用来保存Activity的状态的。当一个Activity在生命周期结束前,会调用该方法保存状态。这个方法有一个参数名称与onCreate方法参数名称相同。如下所示:

public void onSaveInsanceState(Bundle saveInsanceState){

super.onSaveInsanceState(saveInsanceState);

}

在实际应用中,当一个Activity结束前,如果需要保存状态,就在onsaveInstanceState中,将状态数据以key-value的形式放 入到saveInstanceState中。这样,当一个Activity被创建时,就能从onCreate的参数saveInstanceState中获得 状态数据。

activity的onCreate参数 saveInstanceState

时间: 2024-08-10 16:57:39

activity的onCreate参数 saveInstanceState的相关文章

Activity之间传递参数

Activity之间的数据传递 1传递简单数据 2传递数据包(Bundle) 3传递值对象 4获取Activity的返回参数 1------传递简单的数据 新建android工程,取名SendArgs,在activity_main.xml文件里添加一个按钮,用于启动另一个Activity,然后新建一个Activity(手动建class再extends Activity的,需要在AndroidManifest.xml文件里添加配置信息,建议直接新建android activity),取名Aty.

在Activity的onCreate方法中显示PopupWindow导致异常的原因分析及解决方案

一.前言 在某些情况下,我们需要一进入Activity就显示PopupWindow,比如常见的选择界面.但由于PopupWindow是依附于Activity的,如果Activity没有创建完成,Activity还没完全显示出来就显示PopupWindow的话,会出现异常现象. 二.问题复现 我在Activity的onCreate()方法中调用如下方法: public void show( ){ if( null != mPopupWindow ){ mPopupWindow.showAtLoca

在Activity的oncreate方法中如果跳转到别的activity,会发生什么

真是日*狗,即便你跳转到别的Activity,其余的代码一样执行 首先做实验,证明它就是这样发生的 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); System.out.println("aaaaaaaaaaaaaaaaaa"); new Thread(new R

Android查缺补漏(View篇)--在 Activity 的 onCreate() 方法中为什么获取 View 的宽和高为0?

在 Activity 的 onCreate() 方法中为什么获取 View 的宽和高为0 ? @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_view); myview = ViewUtils.find(this, R.id.myview); getViewSize("onCr

Activity的onCreate()的PersistableBundle 参数坑。

Bundle 与 PersistableBundle 区别 仅仅是Activity oncreate()的一个参数与两个参数的区别: @Override public void onCreate(Bundle savedInstanceState,PersistableBundle p) { super.onCreate(savedInstanceState,p); } @Override public void onCreate(Bundle savedInstanceState) { sup

获取 Activity 的返回参数

第一个Activity public class MainActivity extends ActionBarActivity { TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn = (Button) findViewBy

android中按back键返回上一个activity,如何重新调用上一个activity的oncreate方法?

默认情况下是不会调用的. @Override public void onBackPressed() { String titleStr = edittitle.getText().toString(); String contentStr = editcontent.getText().toString(); if (title.equals(titleStr) && content.equals(contentStr)) { super.onBackPressed(); } else

在Activity中onCreate方法里面获取空间宽度和高度的新姿势

以前获取一个View的宽度和高度,总是在Activity中的onCreate方法中获取不到,那么我们怎么在onCreate方法中获取到控件的宽度和高度呢? 方法:用View中的post方法- 代码如下: public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConten

获取Activity的返回参数

一.新建一个空的工程 二.在主界面中添加一个按钮和一个TextView组件 三.新建一个空的activity,命名为TheAty,并添加一个按钮和一个EditText组件 四.重写TheAty的源代码文件中的onCreate函数 private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConten