編輯:關於android開發
當一個活動進入到了停止的狀態,是有可能被系統回收的,我們都學過Activity的生命周期
當活動處於onPause() ,onStop() ,onDestroy() 三種狀態時程序可能會被Android系統回收掉,這時如果之前未進行保護操作把數據保存的話就會造成用戶在程序當中的數據或者修改丟失。也就是這裡要講的”現場保護”,我們希望當下次在運行程序時,上一次的數據還能恢復。
因此需要解決這種問題,Android提供了onSaveInstanceState(BundloutState)方法會在程序被回收前進行調用,它可以在程序被onStop()直前被調用,但不能保證是否在onPause()之前。保存的數據會存在一個bundle對象中,這個對象可以在下次啟動程序調用onCreate(Bundle)或onRestoreInstanceState(Bundle)時作為傳遞的參數,這也就是為什麼我們每一個activity重寫的onCreate方法都有這麼一段:
1 protected void onCreate(Bundle savedInstanceState) 2 { 3 // TODO Auto-generated method stub 4 super.onCreate(savedInstanceState); 5 } onCreateonSaveInstanceState(Bundle) 裡面的這個Bundle對象和onCreate中的所指相同對象。
那到底什麼時候會調用這個方法,其實並不是在activity被destroy就一定調用。有時候也需要根據用戶設定,我的手機會在按返回鍵時kill掉,home鍵不會kill
onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
使用outState的put方法可以保存數據,每個保存方法需要傳入兩個參數,第一個是鍵,第二個是值
}
其實在安卓源碼裡給出了很詳細的解釋,這裡我只是寫了自己對現場保護的理解。
神馬視頻應用安卓項目源碼,神馬安卓項目源碼SMTVLauncher 神馬視頻是一款包含直播、回看、點播、設置於一體的TVLauncher 注意:大家導入工程時,遇到報錯。
Android Studio自定義注釋模板及生成JavaDoc,androidjavadoc剛開始學習Android,使用了Android Studio IDE。為了將來
Android——Fragment介紹及兩種基本使用方法 今天在調ViewPager的時候,感覺ViewPager+Fragment這種做法更靈活,所以,現
PagerTabStrip及自定義的PagerTab,pagertab如圖是效果圖 開發中經常會用到上面是一個Tab下