Android四組件之Activity

來源:互聯網
上載者:User
1、Activities
Quickview

Activity是一個可以給使用者提供互動介面的組件。這個介面通常是全螢幕的,當然也可以是浮動於其他視窗之上的一個小視窗。

一個Android應用通常是由好多個有著松耦合的Activity組成。一般是有一個“main”Activity,它會在使用者初次啟動程式時展
現在使用者面前。隨後程式根據使用者的操作來啟動其他的Activity,每當啟動新的Activity的時候,先前的activity就“stopped”
了(但其並沒有別銷毀),系統將其儲存在“back stack”中,而新啟動的Activity就被放在了“back
stack”的棧首,並展現在螢幕的最前端。當使用者完成了與棧首的Activity的互動後,通過點擊BACK鍵,棧首的Activity即被從棧裡
pop出來並銷毀了,先前的Activity resumes。

2、Activities lifestyle

Activity的三種狀態:

Resumed該activity處於螢幕的前端並擷取了使用者的焦點。Paused該activity是部份可視的,但是使用者焦點在浮動於此activity視窗之上的另一個activity上。 Stopped該activity是不可見的,當然也沒有使用者焦點。
注意:當程式處於Paused和Stopped狀態時,如果系統記憶體很低的情況下,系統會將此進程kill掉來節省記憶體。Activity的回呼函數(Activity裡以“on”開頭的函數):

onCreate()
onRestar()
onStart()
onResume()
onPause()
onStop()
onDestory()
由可見:

onResume()和onPause()是一對,在Activity是否擷取使用者焦點時調用
onRestart()、onStart()和onStop()屬於一個環,根據Activity是否可見被調用
當程式處於Paused和Stopped狀態時(即回呼函數onStop()或onPause()被調用了之後),如果系統記憶體很低的情況下,系統會將此Activity銷毀掉來節省記憶體。

         

Table 1. A summary of the activity lifecycle's
callback methods.

Method Description 被調用後是否可以被殺掉? Next
onCreate() 當Activity初次被建立或當其記憶體被奪取然後又被使用者使用時調用。可給此方法傳遞一個參數:Bundle,它包含了此activity先前的狀態。 No onStart()
     onRestart() 當之前狀態為stopped,現在要變為可見時調用。 No onStart()
onStart()

當Activity要變為可見時調用。

下一個被調用的函數為什麼會是onStop()??

No onResume()
or
onStop()
     onResume()

當Activity要擷取使用者焦點時調用。

No onPause()
onPause() 當系統要resuming另外的一個Activity時調用(也即其失去焦點時)。
最好在此方法中儲存下一些變數資料。
Yes onResume()
or
onStop()
onStop() 當Activity變為不可見時調用。 Yes onRestart()
or
onDestroy()
onDestroy() 當Activity要變為destoried時調用。
當調用了finish()方法或系統為節省記憶體空間臨時銷毀此Activity的執行個體時此回調方法會被調用。
可以用 isFinishing()來區別這兩種情況。
Yes nothing

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.