activity生命週期

測試機(華爲p7)
本文主要以avtivity1和activity2之間的跳轉來分析android

正常的打開關閉ide

I/xd----1-----: onCreate
I/xd----1-----: onStart
I/xd----1-----: onResume
I/xd----1-----: onPause
I/xd----1-----: onStop
I/xd----1-----: onDestroy函數

打開activity1測試

I/xd----1-----: onCreate
I/xd----1-----: onStart
I/xd----1-----: onResume.net

activity1--->activity2 code

I/xd----1-----: onCreate
 I/xd----1-----: onPause
 I/xd----2-----: onCreate
 I/xd----2-----: onStart
 I/xd----2-----: onResume
 I/xd----1-----: onSaveInstanceState
 I/xd----1-----: onStop資源

退出activity2回到activity1get

I/xd----2-----: onPause
I/xd----1-----: onRestart
I/xd----1-----: onStart
I/xd----1-----: onResume
I/xd----2-----: onStop
I/xd----2-----: onDestroyit

activity2直接按home鍵返回桌面io

I/xd----2-----: onPause
I/xd----2-----: onSaveInstanceState
I/xd----2-----: onStop

activity1直接按back鍵

I/xd----1-----: onPause
I/xd----1-----: onStop
I/xd----1-----: onDestroy

activity1直接按home鍵

 I/xd----1-----: onPause
 I/xd----1-----: onSaveInstanceState
 I/xd----1-----: onStop

activity1自動旋轉屏幕

I/xd----1-----: onPause
I/xd----1-----: onSaveInstanceState
I/xd----1-----: onStop
I/xd----1-----: onDestroy
I/xd----1-----: onCreate
I/xd----1-----: onStart
I/xd----1-----: onRestoreInstanceState
I/xd----1-----: onResume

activity2自動旋轉屏幕

I/xd----2-----: onPause
I/xd----2-----: onSaveInstanceState
I/xd----2-----: onStop
I/xd----2-----: onDestroy
I/xd----2-----: onCreate
I/xd----2-----: onStart
I/xd----2-----: onRestoreInstanceState
I/xd----2-----: onResume

當降activity2的主題設置爲dialog

android:theme="@style/Base.Theme.AppCompat.Dialog"

activity1--->activity2

I/xd----1-----: onCreate
I/xd----1-----: onStart
I/xd----1-----: onResume
I/xd----1-----: onPause
I/xd----2-----: onCreate
I/xd----2-----: onStart
I/xd----2-----: onResume
I/xd----1-----: onSaveInstanceState

退出activity2回到activity1

I/xd----2-----: onPause
I/xd----1-----: onResume
I/xd----2-----: onStop
I/xd----2-----: onDestroy

activity2直接按home鍵返回桌面

I/xd----2-----: onPause
I/xd----2-----: onSaveInstanceState
I/xd----2-----: onStop
I/xd----2-----: onDestroy
I/xd----2-----: onCreate
I/xd----2-----: onStart
I/xd----2-----: onRestoreInstanceState
I/xd----2-----: onResume
I/xd----1-----: onStop
I/xd----1-----: onDestroy
I/xd----1-----: onCreate
I/xd----1-----: onStart
I/xd----1-----: onRestoreInstanceState
I/xd----1-----: onResume
I/xd----1-----: onPause

activyty2按home鍵

I/xd----2-----: onPause
I/xd----1-----: onSaveInstanceState
I/xd----1-----: onStop
I/xd----2-----: onSaveInstanceState
I/xd----2-----: onStop

當咱們這樣設置configChanges屬性後,若是咱們的屏幕方向改變(或者你設置的其它屬性改變)Activity就不會從新建立了,而是回調Activity中的onConfigurationChanged函數了

I/xd----1-----: onCreate
I/xd----1-----: onStart
I/xd----1-----: onResume
I/xd----1-----: onConfigurationChanged

以前也看過好多關於saveInstanceState()的講解,可是關於saveInstanceState()方法必須是在activity異常關閉而且從新開啓是調用,與測試demo不附,不知是不是版本問題,請多多指教。。。

 

onCreate(Bundle)是初始化activity的地方. 在這兒一般能夠調用setContentView(int)設置在資源文件中定義的UI, 使用findViewById(int) 能夠得到UI中定義的窗口

onSaveInstanceState的調用是在onPause()以後執行的

即:onPause()—>onSaveInstanceState( )–>onStop( );

@Override

public void onSaveInstanceState(Bundle savedInstanceState) { savedInstanceState.putBoolean("MyBoolean", true);

savedInstanceState.putDouble("myDouble", 1.9);

savedInstanceState.putInt("MyInt", 1);

savedInstanceState.putString("MyString", "Welcome back to Android"); // etc. super.onSaveInstanceState(savedInstanceState);

}

@Override

public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState);

boolean myBoolean = savedInstanceState.getBoolean("MyBoolean");

double myDouble = savedInstanceState.getDouble("myDouble");

int myInt = savedInstanceState.getInt("MyInt");

String myString = savedInstanceState.getString("MyString");

}

小菜鳥一枚。。

相關文章
相關標籤/搜索