activity生命周期圖:

下面介紹一下里面的方法:
oncreat():在activity一執行就運行的,此過程加載xml里的視圖控件
onstart():是在activity視圖在手機屏幕上可見時候調用執行
onResme():是獲取手機屏幕空間的焦點,即可以點擊控件時候執行
onpause():與onResme()是相反的,手機失去控件焦點時候執行
onStop()是activity視圖在手機上不可見時候執行
ondestroy():是銷毀activity,隨即一個activity就會結束
在了解了activity的這些方法后,我們可以覆寫這些方法來達到我們自己的目的:
1、手機橫豎屏切換時候,activity會調用后3個方法,因此最后銷毀了,再重新創建新的activity,因此執行的數據又會回到最初的開始地方,比如:pdf閱讀器讀到30頁,我們轉動屏幕又回到第一頁這是用戶不想的,下面由2種方法解決該問題:
(1)、我們在該activity清單文件里加上一個屬性:android:configChanges="keyboardHidden|orientation"如下圖:
<activity
android:configChanges="keyboardHidden|orientation" // keyboardHidden是隱藏軟鍵盤,當橫豎屏切換時候,系統會判斷是否適合顯示軟鍵盤,后面一個是切屏 即這兩個動作不會重啟activity
//也可以在代碼中調用onConfigurationChanged(Configuration newConfig)來實現
android:name=".SecondActivity"
android:label="secondactivity" >
<intent-filter>
<action android:name="com.example.multiactivity.SecondActivity" />
<action android:name="com.example.multiactivity.SecondActivity2" />
<action android:name="com.example.multiactivity.SecondActivity3" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
同時也學習一下橫豎屏顯示的方法:
android:screenOrientation="landscape"---控制Acitvity為橫屏顯示。
android:screenOrientation="portrait"---控制Activity為豎屏顯示
2、我們可以在覆寫activity里的onSaveInstanceState(Bundle outState)方法,該方法再activity被ondestroy()時調用來保存數據,在重新創建調用oncreat()時候獲取保存的值,設置page=30,注意onSaveInstanceState()方法在什么時候調用,參見http://blog.csdn.net/lccly/article/details/6089667
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState!=null)
{
int page=savedInstanceState.getInt("page");//取得保存的值
setpage(30);
}
}
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState); //將頁碼保存字bundle對象中
outState.putInt("page", 30);
}
