Android---7---活動及活動的生命週期

來源:互聯網
上載者:User

標籤:android   android開發   activity   

什麼是Activity

簡單的說Activity就是布滿整個視窗或者懸浮於其他視窗上的互動介面,也就是手機螢幕上所顯示的內容。

在一個應用程式中通常由多個Activity構成,都會在Manifest.xml中指定一個主的Activity。Intent-filter中的兩行代碼非常重要,表示該活動是主活動。

當程式第一次運行時就可以看到這個Activity,這個Activity可以通過啟動其他的Activity進行相關操作。當啟動其他的Activity時,這個當前的活動就會停止,被壓入棧底,新的活動會在棧頂並運行。當使用者按Back鍵時,當前活動會被銷毀,前一個活動重新恢複運行。

 

活動的生命週期:

活動的七個方法與三個階段:

1.onCreate()

每個活動都會有的方法,在活動第一次被建立的時候調用

2.OnStart

這個活動在活動由不可見變為可見的時候調用

3.OnResume

這個方法在活動準備好和使用者進行互動的時候調用,此時的活動一定位於返回棧的棧頂,並且處於運行狀態。

4. onPause()

這個方法在系統準備去啟動或者恢複另一個活動的時候調用。 我們通常會在這個方

法中將一些消耗 CPU 的資源釋放掉,以及儲存一些關鍵資料,但這個方法的執行速度

一定要快,不然會影響到新的棧頂活動的使用。

5.onStop()

這個方法在活動完全不可見的時候調用。它和 onPause()方法的主要區別在於,如

果啟動的新活動是一個對話方塊式的活動,那麼 onPause()方法會得到執行,而 onStop()

方法並不會執行。

6.onDestroy()

這個方法在活動被銷毀之前調用,之後活動的狀態將變為銷毀狀態。

7.onRestart()

這個方法在活動由停止狀態變為運行狀態之前調用,也就是活動被重新啟動了。

 

 

以上七個方法中除了 onRestart()方法,其他都是兩兩相對的,從而又可以將活動分為三

種生存期。

 

三個階段:

1.開始Activity:在這個階段依次執行3個生命週期的方法,分別是:onCreate、onStart和onResume方法

2.Activity重新獲得焦點:如果Activity重新獲得焦點,會依次執行3個方法,onRestart、onStart和onResume

3.關閉Activity:當Activity被關閉時系統會依次執行3個方法,onPause、onStop和onDestory。

 




 

從以上的Activity的生命週期不難看出,該圖包含了兩層迴圈,第一層迴圈是:onPause->onResume->onPause

第二層迴圈是:onStart->onRestart->onResume->onPause->onStop

 

第一層迴圈稱為是 焦點生命週期,第二層迴圈可以視為生命週期。也就是說,第一層迴圈是在Activity焦點獲得與失去的過程中迴圈,在這個過程中,Activity始終是可見的

第二層迴圈是Activity可見和不可見的過程中迴圈。



package com.example.android_life;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;public class MainActivity extends Activity {private String TAG = "MainActivity";protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.i(TAG, "onCreate is executed");}@Overrideprotected void onStart() {// TODO Auto-generated method stubsuper.onStart();Log.i(TAG, "onStart is executed");}@Overrideprotected void onRestart() {// TODO Auto-generated method stubsuper.onRestart();Log.i(TAG, "onRestart is executed");}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();Log.i(TAG, "onResume is executed");}@Overrideprotected void onStop() {// TODO Auto-generated method stubsuper.onStop();Log.i(TAG, "onStop is executed");}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();Log.i(TAG, "onPause is executed");}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();Log.i(TAG, "onDestroy is executed");}}

當程式部署到模擬器上的時候,先出現了onCreate onStart、onResume(建立->啟動->運行)方法,這時候,按撥號按鈕,會出現onPause、onStop(暫停->停止)方法。按下Back鍵  onRestart onStart onResume (重啟->啟動->運行) 退出鍵 onPause onStop onDestory(暫停->停止->銷毀)

 


Android---7---活動及活動的生命週期

聯繫我們

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