深度說明Android 程序轉換
在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。
【編輯推薦】