http://blog.csdn.net/cyp331203/article/details/44985087
http://www.cnblogs.com/wumao/archive/2011/04/25/2026483.html
1.關於activity被幹掉
在3.0之後,只有等onStop執行完纔會被幹掉
2.onSaveInstanceState參數是bundle型數據,他是在activity轉到後臺狀態前調用
什麼是後臺狀態?看不見了,也就是onStop
故而可以在onPause之後,onStop之前調用onSaveInstanceState保存數據
但是onSaveInstanceState並不是一定會被調用
3.一個activity啓動另一個activity
當前activity opPause後,轉到另一個activity,onCreate。。。
可以在當前activity onPause時向數據庫保存一些數據,然後在新的activity裏調用
4.onSaveInstanceState保存的是bundle,鍵值對
有可能有別的數據類型,可以在Object onRetainNonConfigurationInstance()中進行保存,並通過getLastNonConfigurationInstance()方法獲取之前函數返回的Object,並根據此Object進行設置(這步還原的操作可在onCreate()和onStart()方法中執行)。
5. 對於橫豎屏導致的數據丟失名可以在manifest裏配置一下,只改變字體什麼的,activity不重新構建
android:configChanges="orientation|keyboardHidden"
6. 何時用onSaveInstanceState方法
其實系統本身給幾乎所有UI控件都恰當的實現了onSaveInstanceState()方法,只要這些控件分配了ID
只有需要保存額外的一些數據,變量什麼的,就可以用這個方法來保存
7. 題外話,對於一些常用的數據,可以通過application來保存數據
每一個APP啓動時,都有一個唯一的PID,進程ID
所有的activity都在這個進程上運行
所以,在同一Application中所有的Activity都可以通過Activity.getApplication()方法獲取到同一個Application對象,繼承Application類,即可訪問自定義數據。 創建新class,取名MyApp,繼承android.app.Application父類,並在MyApp中定義需要保存的屬性,如:用戶名,用戶類型。