深度說明Android 程式轉換

來源:互聯網
上載者:User

在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。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.