編輯:高級開發
上面提到開發者是無法控制Activity的狀態的,那Activity的狀態又是按照何種邏輯來運作的呢?這就要知道 Activity 棧。
每個Activity的狀態是由它在Activity棧(是一個後進先出LIFO,包含所有正在運行Activity的隊列)中的位置決定的。
當一個新的Activity啟動時,當前的活動的Activity將會移到Activity棧的頂部。
如果用戶使用後退按鈕返回的話,或者前台的Activity結束,在棧上的Activity將會移上來並變為活動狀態。如下圖所示:
一個應用程序的優先級是受最高優先級的Activity影響的。當決定某個應用程序是否要終結去釋放資源,android內存管理使用棧來決定基於Activity的應用程序的優先級。
Activity狀態
一般認為Activity有以下四種狀態:
活動的:當一個Activity在棧頂,它是可視的、有焦點、可接受用戶輸入的。android試圖盡最大可能保持它活動狀態,殺死其它Activity來確保當前活動Activity有足夠的資源可使用。當另外一個Activity被激活,這個將會被暫停。
暫停:在很多情況下,你的Activity可視但是它沒有焦點,換句話說它被暫停了。有可能原因是一個透明或者非全屏的Activity被激活。
當被暫停,一個Activity仍會當成活動狀態,只不過是不可以接受用戶輸入。在極特殊的情況下,Andr
3 height=134>123456Project Name: BrewClockBuild Target: Google Inc. 1.6 (Api Leve
最近,Google面向大學生推出android開發挑戰賽,android開發成為時下開發者的熱點開發項目。像《在NetBeans上搭建android SDK環境》這樣的
3.5 (Galileo).運行Eclipse 並選擇Help->Install New Software.在Available Software窗口中點擊Add
Javascript:return big(this) width=625 height=200 src=/School/UploadFiles_7810/201203