標籤: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---活動及活動的生命週期