標籤:des android cWeb style http color io os ar
關鍵字:應用組件、四大組件、使用者介面,互動。
An Activity is an application component that provides a screen with which users can interact in order to do something
每個Android應用開啟,一般都有介面與使用者進行互動,以完成輸入,輸出等一些功能。提供這個功能的就是Android四大組件之一,Activity。
Activity提供一個視窗描繪了使用者介面,視窗的大小可以是:全屏視窗,浮動的視窗,嵌入在其他Activity裡面(使用ActivityGroup)。
一個應用一般包含多個Activity,每個Activity都被設計圍繞這使用者能執行的特定種類的action,也能開啟其他的Activity。
如所示,Chrome應用中的Activity。
使用者開啟的activity都被安排進了一個棧(後退棧,back stack,符合後進先出原則"First in Last out")。
當當前activity開啟另一個activity,新的activiy壓入棧頂並且獲得焦點。先前的activity依然在棧裡,但是是停止的。系統保留了它使用者介面當前的狀態。
當使用者按返回按鈕時,當前的activity從棧頂彈出(activity被銷毀destroyed),之前的Activity恢複(恢複先前儲存的使用者介面狀態)。
棧中的activity永遠不會重新排列。只會從棧中壓入和彈出
壓入:使用者從當前Activity開啟到另一個Activity
彈出:使用者按返回鍵離開當前Activity。
展示了
使用者依次開啟Activity1、Activity2、Activity3,然後按返回鍵離開Activity3返回Activity2
後退棧的情況的。
1.Resumed(或running):運行狀態
activity在螢幕前台,並且有使用者焦點。
2.Paused:暫停狀態
另一個activity在前台並且有使用者焦點。但是這個activity仍然可見(visible)。
另一個Activity在這個Activity上面,它部分透明或是沒有覆蓋整個螢幕。
一個暫停狀態的activity完全是alive的(Activity對象儲存在記憶體中,它保留著所有的狀態和成員資訊,依然附屬於(attached to)window manager),但是在極其低儲存空間的情況下會被系統殺掉。
3.Stopped:停止狀態
activity完全被其他activity遮蔽(現在在後台)。
一個停止的activity也是alive的(Activity對象儲存在記憶體中,它保留著所有的狀態和成員資訊,但是沒有附屬於(attached to)window manager)對使用者不再可見,當記憶體在別處需要時,它隨時可能被殺掉。
下面這張圖很好的描述了Activity的運行和暫停這兩種狀態。
second Activity是運行狀態,但是它沒有覆蓋整個螢幕,而之前的那個Activity就是暫停狀態。
Android四大組件之——Activity(一)定義、狀態和後退棧