亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Activity生命周期總結

系統 2087 0

Android中用于顯示的容器是Activity,一個Activity對應一個顯示頁面。

?

?

  • Activity生命7方法

Activity對象運行與它自己的7個方法密切相關,從對象的創建到銷毀,這7個方法在Activity不同階段運行,具體的方法介紹如下表格所示:

?

Method

Description

Killable

Next

onCreate

當啟動新的 Activity 的時候被調用

No

onStart()

onStart

Activity 對用戶即將可見時調用

No

onResume() or onStop()

onRestart

重新啟動 Activity 時調用 (此方法是重啟留在緩存中的 Activity

No

onStart()

onResume

Activity 界面可與用戶交互時調用

No

onPause()

onPause

當系統要啟動一個其他的 activity 時調用,用于保存當前數據

Yes

onResume() or onStop()

onStop

Activity 已經不可見時調用

Yes

onRestart() or
onDestroy()

onDestroy

Activity finish 或手機內存不足被銷毀的時候調用

Yes

nothing

?

?

?

  • Activity LifeCycle

Google官方提供了Activity LifeCycle的運行圖,個人覺得官方提供的圖非常簡潔明了地介紹了Activity的運行周期:


Activity生命周期總結

如上圖所示,當啟動Activity1時, 首先調用 onCreate 方法初始化 Activity 的內容,當 Activity 顯示出來的時候調用 onStar 方法(此時 Activity 只能看不能點擊使用),當 Activity 可以被點擊時,則調用 onResume 方法;

如果新一個Activity2完全覆蓋原Activity1, 首先會讓 Activity1 執行 onPause 方法暫存 Activity1 的數據,然后依次執行 onCreate onStart onResume 方法啟動 Activity2, 最后因為 Activity1 會被 Activity2 完全覆蓋,所以會執行 Activity1 onStop 方法;

另一種情況,如果新Activity2未完全覆蓋Activity1(可能只是一個彈出層),則運行流程與上面說的執行流程相同,只是不會執行Activity1的onStop方法;

如果點擊手機上的“返回”按鈕,當前Activity對象會被銷毀,此時就會執行onDestory方法。

?

?

  • Android Task

Android Task 是一個 Activity 棧,保存的是所有正運行的 application Activity 數據, Task 中的 Activity 可以分屬于不同的 application, 一個 Activity 棧也可能是由一個或多個 Task 組成, Task 數據僅僅是臨時保存,若手機內存不足或長時間未使用該 application Android 會自動銷毀 Task 部分 Activity 數據。

?

  • onSaveInstanceState保存數據
前面提到:Activity處于onPause、onStop和onDestory狀態時,如果手機內存資源緊缺就會銷毀Activity,這樣導致當前Activity填寫的數據都化為烏有。Activity含有onSaveInstanceState方法,該方法的參數Bundle可以保存數據,即使當前Activity被銷毀,Bundle也是存在的。這樣Activity再次啟動后onCreate方法的參數Bundle對象其實就是onSaveInstanceState的Bundle對象,所以可以在onCreate方法中再取出Bundle對象中的數據。
       @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        if(savedInstanceState!=null && savedInstanceState.containsKey(ET_KEY)){
        	EditText et = (EditText)findViewById(R.id.et);
        	et.setText(savedInstanceState.getString(ET_KEY));
        }
    }
    
	@Override
	protected void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		EditText et = (EditText)findViewById(R.id.et);
		outState.putString(ET_KEY, et.getText().toString());
	}
    
?

?

我的百度文庫有關于Android Activity生命周期的ppt,免費下載,希望對大家有所幫助:

http://wenku.baidu.com/view/db19524ce518964bcf847cf9.html

?

附Activity生命周期例子,版本2.1

Activity生命周期總結


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产欧美亚洲三区久在线观看 | 深夜免费福利 | 亚洲精品tv久久久久久久久 | 久久不射影院 | 成人亚洲欧美综合 | 欧美高清视频www夜色资源网 | 中文字幕 日韩有码 | 成人免费视频网站 | 在线观看中文字幕第一页 | 精品一区二区三区免费爱 | 日本午夜www高清视频 | 国产精品久久福利新婚之夜 | 4htv影院永久免费在线地址 | 日韩中文字幕在线播放 | 中文字幕久久亚洲一区 | 狠狠色噜噜狠狠狠狠黑人 | 国产精品一区二区在线观看 | 国产专区在线播放 | 国产综合一区二区 | 一级特黄a视频 | 亚洲一区二区三区精品国产 | 亚洲免费在线观看视频 | 亚洲一区在线免费观看 | 亚洲欧美字幕 | 欧美午夜精品一区二区三区 | 久久久久四虎国产精品 | 日韩精品你懂的在线播放 | 亚洲精品一区二区三区美女 | 四虎影院免费视频 | 欧美日韩一区二区三区毛片 | 新久草视频| 国产成人h综合亚洲欧美在线 | 国产高清a毛片在线看 | 玖玖精品在线观看 | 老子影院午夜精品欧美视频 | 成人免费毛片一区二区三区 | 91在线网站 | 亚洲欧美在线看 | 精品精品国产高清a毛片牛牛 | 成人国产精品视频 | 乱码一区二区三区完整视频 |