Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android學習指南之四:Activity詳解

Android學習指南之四:Activity詳解

編輯:關於android開發

       Activity是Android開發中四大組件之一,也是Android組件中最基本最簡單的組件,可想而知,Activity的學習很重要。本文首先簡單介紹Activity,再講解Activity的生命周期,最後給出一個實例,通過翻轉屏幕看Activity狀態的變化。

       一、Activity簡介

       Activity是Android程序的4大組件之一。

       Activity是Android程序的表示層。程序的每一個顯示屏幕就是一個Activity。

       學過WEB開發的同學,可以把Activity理解成網頁中的一個JSP文件;或者你可以把它理解成一個Windows的窗口。

       下面看一下Activity類的繼承關系:

Android學習指南之四:Activity詳解

       從這裡可以看到Activity是Context類的子類,大家對此先有個印象。

       二、Activity的生命周期

       手機最重要也是最基礎的功能是打電話,也就意味著電話來的時候可能隨時要把現在的程序暫停,如果電量不足的時候也可能隨時要把現有程序關閉;因此Android程序和電腦上的程序有所不同,具體到Activity,Activity的生命周期不是自身控制的,而是由Android系統控制的。

       在android中Activity有四種基本狀態:

       1、Running

       位於屏幕最前端時,此時處於可見狀態,和用戶可交互的狀態。

       2、Paused

       當Acitivy被另一個透明的或者非全屏的Activity覆蓋時的狀態叫Paused狀態,雖然可見但不可交互。

       3、Stop

       當Activity被另外一個Activity覆蓋、界面不可見時處於Stop狀態。

       4、Killed

       Activity被系統殺死或者跟本沒啟動時就是Killed狀態。

       我們下面看一下Activity的生命周期:

Android學習指南之四:Activity詳解

       Activity棧:

       Android通過Activity棧的方式來管理Activity。

Android學習指南之四:Activity詳解 

       正在運行的Activity 處在在棧的最頂端,它是運行狀態的;

       當有新Activity進入屏幕最上端時,原來的Activity就會被壓入第二層,如果他的屏幕沒有被完全遮蓋,那麼他處於Pause狀態,如果他被遮蓋那麼他處於Stop狀態。

       當然不管你出於任何一層,都可能在系統覺得資源不足時被強行關閉,當然關閉時在棧底的程序最先被關閉。

       譬如:當你在程序中調用 Activity.finish()方法時,結果和用戶按下 BACK 鍵一樣:他告訴 Activity Manager該Activity實例可以被“回收”。隨後 Activity Manager 激活處於棧第二層的 Activity 並重新入棧,把原 Activity 壓入到棧的第二層,從 Running 狀態轉到 Paused 狀態。

       三.實例:觀察翻轉屏幕導致的Activity狀態變化

       Activity類中定義了和生命周期相關的一些方法,這些方法會在狀態改變時被調用,譬如創建時調用的方法onCreate()。因此我們可以寫一個程序,在程序的每個一個方法中寫注釋,然後看看運行時注釋的打印順序來跟蹤Activity的狀態變化。

       下面是程序代碼:

Java代碼
  1. package android.basic.lesson4;import android.app.Activity;   
  2. import android.os.Bundle;   
  3. import android.util.Log;public class MainActivityLife extends Activity {   
  4. String tag =”[MainActivityLife]“;   
  5. /** Called when the activity is first created. */  
  6. @Override  
  7. public void onCreate(Bundle savedInstanceState) {   
  8. super.onCreate(savedInstanceState);   
  9. setContentView(R.layout.main);   
  10. Log.i(tag, “onCreate”);   
  11. }@Override  
  12. public void onStart(){   
  13. super.onStart();   
  14. Log.i(tag, “onStart”);   
  15. }@Override  
  16. public void onPause(){   
  17. super.onPause();   
  18. Log.i(tag, “onPause”);   
  19. }@Override  
  20. public void onResume(){   
  21. super.onResume();   
  22. Log.i(tag, “onResume”);   
  23. }@Override  
  24. public void onStop(){   
  25. super.onStop();   
  26. Log.i(tag, “onStop”);   
  27. }@Override  
  28. public void onDestroy(){   
  29. super.onDestroy();   
  30. Log.i(tag, “onDestroy”);   
  31. }   
  32. }  
 

       然後調出LogCat工具,來觀察程序的運行細節。通過LogCat的過濾器我們可以看到程序啟動、屏幕翻轉、按後退鍵程序退出的過程,這有助於我們驗證剛才所學的知識。

 Android學習指南之四:Activity詳解

       我們可以看到屏幕翻轉時,Android系統把ActivityLife這個Activity先殺死(具體順序是先暫停、後關閉再銷毀),然後再啟動(具體順序是先創建,後啟動再恢復)。通過這個例子我們也清楚的看到了,是Android系統而不是程序員在控制Activity的生命周期。

       通過本節的學習,大家應該對Activity的概念以及Activity的生命周期等有了明確認識了,這些都是以後進行Android開發的基礎。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved