在Android 程式中,有關預設變數值的限制非常模糊。基於此,很多編譯器允許開發人員將預設變數值包含在函式宣告,指向函數的指標和引用,成員函數的指標,以及typedef聲明中。
Activity 的狀態及狀態間的轉換 在Android 程式中,Activity 擁有四種基本狀態:Active/Runing 一個新 Activity 啟動入棧後。它在螢幕最前端,處於棧的最頂端,此時它處於可見並可和使用者互動的啟用狀態。 Paused 當 Activity 被另一個透明或者 Dialog 樣式的 Activity 覆蓋時的狀態。
此時它依然與視窗管理器保持串連,系統繼續維護其內部狀態,所以它仍然可見,但它已經失去了焦點故不可與使用者互動。
Stoped 當 Activity 被另外一個Android 程式 、失去焦點並不可見時處於 Stop ed 狀態。 Killed Activity 被系統殺死回收或者沒有被啟動時處於 Killed 狀態。
當一個 Activity 執行個體被建立、銷毀或者啟動另外一個 Activity 時,它在這四種狀態之間進行轉換,這種轉換的發生依賴於使用者程式的動作。說明了 Activity 在不同狀態間轉換的時機和條件:平台可以促使行動裝置的創新,讓使用者體驗到最優越的行動服務,同時,開發商也將得到一個新的開放層級。
如上所示,Android 程式員可以決定一個 Activity 的“生”,但不能決定它的“死”,也就時說程式員可以啟動一個 Activity,但是卻不能手動的“結束”一個 Activity。當你調用 Activity.finish() 方法時。
結果和使用者按下 BACK 鍵一樣:告訴 Activity Manager 該 Activity 執行個體完成了相應的工作,可以被“回收”。隨後 Activity Manager 啟用處於棧第二層的 Activity 並重新入棧,同時原 Activity 被壓入到棧的第二層,從 Active 狀態轉到 Paused 狀態。
例如:從 Activity1 中啟動了 Activity2,則當前處於棧頂端的是 Activity2,第二層是 Activity1,當我們調用 Activity2.finish() 方法時,Activity Manager 重新啟用 Activity1 併入棧。Activity2 從 Active 狀態轉換 Stoped 狀態,Activity1. onActivityResult(int requestCode, int resultCode, Intent data) 方法被執行,Activity2 返回的資料通過 data 參數返回給 Activity1。