首頁 收藏 QQ群
 網(wǎng)站導航

ZNDS智能電視網(wǎng) 推薦當貝市場

TV應用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計算器

綜合交流 / 評測 / 活動區(qū)

交流區(qū) | 測硬件 | 網(wǎng)站活動 | Z幣中心

新手入門 / 進階 / 社區(qū)互助

新手 | 你問我答 | 免費刷機救磚 | ROM固件

查看: 12538|回復: 0
上一主題 下一主題
[教程]

第四講:Activity入門指南

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2013-8-28 16:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
668
本節(jié)內(nèi)容   
理解Activity   
Activity的生命周期   
實例:觀察翻轉屏幕導致的Activity狀態(tài)變化
點此下載:
  
從這里可以看到Activity是Context類的子類,大家對此先有個印象。
二、理解Activity的生命周期
手機最重要也是最基礎的功能是打電話,也就意味著電話來的時候可能隨時要把現(xiàn)在的程序暫停,如果電量不足的時候也可能隨時要把現(xiàn)有程序關閉;因此Android程序和電腦上的程序有所不同,具體到Activity,Activity的生命周期不是自身控制的,而是由Android系統(tǒng)控制的。
在android中Activity有四種基本狀態(tài):   
1、Running   
位于屏幕最前端時,此時處于可見狀態(tài),和用戶可交互的狀態(tài)。   
2、Paused   
當Acitivy被另一個透明的或者非全屏的Activity覆蓋時的狀態(tài)叫Paused狀態(tài),雖然可見但不可交互。   
3、Stop   
當Activity被另外一個Activity覆蓋、界面不可見時處于Stop狀態(tài)。   
4、Killed   
Activity被系統(tǒng)殺死或者跟本沒啟動時就是Killed狀態(tài)。
我們下面看一下Activity的生命周期:
  
下面是上圖的簡單翻譯版本:
  
Activity棧:   
Android通過Activity棧的方式來管理Activity。
     
正在運行的Activity 處在在棧的最頂端,它是運行狀態(tài)的;
當有新Activity進入屏幕最上端時,原來的Activity就會被壓入第二層,如果他的屏幕沒有被完全遮蓋,那么他處于Pause狀態(tài),如果他被遮蓋那么他處于Stop狀態(tài)。
當然不管你出于任何一層,都可能在系統(tǒng)覺得資源不足時被強行關閉,當然關閉時在棧底的程序最先被關閉。
譬如:當你在程序中調(diào)用 Activity.finish()方法時,結果和用戶按下 BACK 鍵一樣:他告訴 Activity Manager該Activity實例可以被“回收”。隨后 Activity Manager 激活處于棧第二層的 Activity 并重新入棧,把原 Activity 壓入到棧的第二層,從 Running 狀態(tài)轉到 Paused 狀態(tài)。
三.實例:觀察翻轉屏幕導致的Activity狀態(tài)變化
Activity類中定義了和生命周期相關的一些方法,這些方法會在狀態(tài)改變時被調(diào)用,譬如創(chuàng)建時調(diào)用的方法onCreate()。因此我們可以寫一個程序,在程序的每個一個方法中寫注釋,然后看看運行時注釋的打印順序來跟蹤Activity的狀態(tài)變化。
   
下面是程序代碼:
   
   
  1. package android.basic.lesson4;import android.app.Activity;   
    import android.os.Bundle;   
    import android.util.Log;public class MainActivityLife extends Activity {   
    String tag =”[MainActivityLife]“;   
    /** Called when the activity is first created. */   
    @Override   
    public void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);   
    setContentView(R.layout.main);   
    Log.i(tag, “onCreate”);   
    }@Override   
    public void onStart(){   
    super.onStart();   
    Log.i(tag, “onStart”);   
    }@Override   
    public void onPause(){   
    super.onPause();   
    Log.i(tag, “onPause”);   
    }@Override   
    public void onResume(){   
    super.onResume();   
    Log.i(tag, “onResume”);   
    }@Override   
    public void onStop(){   
    super.onStop();   
    Log.i(tag, “onStop”);   
    }@Override   
    public void onDestroy(){   
    super.onDestroy();   
    Log.i(tag, “onDestroy”);   
    }   
    }
復制代碼
  
   
然后調(diào)出LogCat工具,來觀察程序的運行細節(jié)。通過LogCat的過濾器我們可以看到程序啟動、屏幕翻轉、按后退鍵程序退出的過程,這有助于我們驗證剛才所學的知識。
  
我們可以看到屏幕翻轉時,Android系統(tǒng)把ActivityLife這個Activity先殺死(具體順序是先暫停、后關閉再銷毀),然后再啟動(具體順序是先創(chuàng)建,后啟動再恢復)。通過這個例子我們也清楚的看到了,是Android系統(tǒng)而不是程序員在控制Activity的生命周期。
本節(jié)課就到這里。

上一篇:第五講:用戶界面 View(一)
下一篇:第三講:Android模擬器的使用
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

Archiver|新帖|標簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號 )

網(wǎng)絡信息服務信用承諾書 | 增值電信業(yè)務經(jīng)營許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號

GMT+8, 2025-2-3 01:00 , Processed in 0.062047 second(s), 13 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報:report#znds.com (請將#替換為@)

© 2007-2025 ZNDS.Com

快速回復 返回頂部 返回列表