Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android-現場保護,android-現場

Android-現場保護,android-現場

編輯:關於android開發

Android-現場保護,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 } onCreate

onSaveInstanceState(Bundle) 裡面的這個Bundle對象和onCreate中的所指相同對象。


那到底什麼時候會調用這個方法,其實並不是在activity被destroy就一定調用。有時候也需要根據用戶設定,我的手機會在按返回鍵時kill掉,home鍵不會kill
onSaveInstanceState(Bundle outState)
{
  super.onSaveInstanceState(outState);
  使用outState的put方法可以保存數據,每個保存方法需要傳入兩個參數,第一個是鍵,第二個是值

}

其實在安卓源碼裡給出了很詳細的解釋,這裡我只是寫了自己對現場保護的理解。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved