重建activity_第1頁
已閱讀1頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、RecreatinganActivity重建重建ActivityActivity有幾個情況下Activity會由于正常的程序行為而被Desty,例如當用戶點擊返回按鈕或者是Activity通過調用finish()發(fā)出了停止信號。系統(tǒng)也有可能會在Activity處于stop狀態(tài)且長時間不被使用、或在前臺Activity需要更多系統(tǒng)資源的時候關閉后臺進程以獲取更多的內存。當Activity是因為用戶點擊Back按鈕或者是Activity通過

2、調用finish()結束自己時,系統(tǒng)就丟失了Activity這個實例,因為前面的行為意味著不再需要這個Activity了。然而,如果因為系統(tǒng)資源緊張而導致Activity被Desty用戶回到這個Activity時系統(tǒng)會有這個Activity存在過的記錄,系統(tǒng)會使用那些保存的記錄數據(描述了當Activity被Desty時的狀態(tài))來重新創(chuàng)建一個新的Account實例。那些被系統(tǒng)用來恢復之前狀態(tài)而保存的數據叫做“instancestate“

3、,它是一些存放在Bundle對象中的鍵值對.警告警告:Activity會在每次旋轉屏幕時被Destroy與Recreate。當屏幕改變方向時,系統(tǒng)會Desty與Recreate前臺的Activity,因為屏幕配置被改變,相應的Activity可能需要加載一些可選的資源(例如layout).默認情況下系統(tǒng)使用Bundle實例來保存每一個視圖對象中的信息(例如輸入EditText中的文本內容)。因此,如果Activity被Destroy與R

4、ecreate那么layout的狀態(tài)信息會自動恢復到之前的狀態(tài)。然而,Activity也許存在更多需要恢復的狀態(tài)信息,例如記錄用戶進程的成員變量。為了可以保存額外更多的數據到savedinstancestate,在Activity的聲明周期里面需要一個添加的回調函數onSaveInstanceState()。這個回調函數并沒有在前面課程的圖片示例中顯示。當用戶離開Activity時,系統(tǒng)會調用它。當調用這個函數時,系統(tǒng)會在Activit

5、y被異常Desty時傳遞Bundle對象,從而可以增@OverridepublicpublicvoidonSaveInstanceState(BundlesavedInstanceState)SavetheuserscurrentgamestatesavedInstanceState.putInt(STATE_SCEmCurrentSce)savedInstanceState.putInt(STATE_LEVELmCurrentLeve

6、l)Alwayscallthesuperclasssoitcansavetheviewhierarchystatesupersuper.onSaveInstanceState(savedInstanceState)警告警告:必須要調用onSaveInstanceState()方法的父類實現(xiàn),這樣默認的父類實現(xiàn)才能保存視圖狀態(tài)的信息?;謴突謴虯ctivityActivity狀態(tài)狀態(tài)當Activity在被Desty后進行重建,可以從系統(tǒng)傳遞

7、給Activity的Bundle中恢復保存的狀態(tài)。onCreate()與onResteInstanceState()回調方法都接收到了同樣的Bundle,里面包含了同樣的實例狀態(tài)信息。因為onCreate()方法會在第一次創(chuàng)建新的Activity實例與重新創(chuàng)建之前被Desty的實例時都被調用,所以必須在嘗試讀取Bundle對象前檢查它是否為空。如果它為空,系統(tǒng)則是創(chuàng)建一個新的Activity實例,而不是恢復之前被Desty的Activi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論