Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> android.app.Activity---中文

android.app.Activity---中文

日期:2017/2/22 10:10:56      編輯:Android開發教程

Android.app.Activity

Activity是用戶主要也是唯一打交道的途徑。基本上所有的Activity都是和用戶打交道的,你可以通過setContentView(View)來創建一個窗口。Activity常常是以全窗口的模式展示的,當然也有其他的展示方式:浮動窗口(windowIsFloating)或則嵌入到其他Activity(ActivityGroup)。基本上所有子類都會重寫一下兩個方法:

◆ onCreate(Bundle):初始化Activity。這裡常會調用setContentView(int)來加載layout資源來定義你的UI,並且使用findViewById(int)來獲取組件。

◆ onPause():指離開Activity時候觸發的方法。用戶在組件上所做的變更都要提交(通常保存到ContentProvider)

如果有調用Activity.startActivity(),必須在AndroidManifest.xml文件中的<activity>標簽中聲明該Activity。

Activity在整個應用的生命周期中起至關重要的作用。

Activity Lifecycle

系統中的Activity可以通過一個activity棧來進行管理。當一個新的activity啟動的時候,它首先會被放置在activity棧頂部並成為running狀態的activity —— 之前的activity也在activity棧中,但總是被保存在它的下邊,只有當這個新的activity退出以後之前的activity才能重新回到前景界面

所有的activity有四中狀態

◆ 如果activity在屏幕前端(在堆棧棧頂),那麼這個activity是運行的

◆ 如果一個activity失去焦點時仍然可見(指新打開的activity不占用整屏),那麼它的狀態是paused。Paused 的Activity仍然可見(依然保存它的數據和狀態信息,並且仍然由window manager ),但是會在系統處於低內存狀態時候被清除。

◆ 如果一個Activity被其他activity覆蓋時,它將處於stopped狀態。它仍然保留數據和狀態信息,但是它對於用戶是不可見的。但是它會在系統其他地方需要內存的時候被殺掉

◆ 如果一個Activity處於paused或則stopped狀態時,系統可以通過關閉或則殺掉進程的方式來釋放它占用的內存。當再次需要它的時候,系統會重新啟動並加載之前的狀態。

下圖是Activity的主要狀態圖:

對於你的activity,有三個點比較關鍵:

◆ Activity的整個生命周期從onCreate(Bundle)到onDestory().activity會在onCreate()時候創建所有的全局狀態並且會在onDestory()時候釋放這些資源。比如如果需要一個Thread在後台下載網絡上的資源,那麼需要在onCreate(Bundle)時候創建它並且在onDestory()時候釋放它。

◆ Activity可見生命周期從onStart()到onStop().這個時間我們可以在屏幕上看到這些組件,盡管可能這個組件不在最前端。這兩個方法之間可以調用一些展示給用戶看的資源。比如可以在onStart()是創建一個BroadcastReceiver來接收對用戶界面有影響的信息,在onStop()時候關閉它,那麼在每次調用onStart()和onStop()時候都會穿件這個BroadcastReceiver。

◆ Activity的前景生命周期從onResume()到onPause()之間。這期間Activity處於和用戶交互階段。Activity會不斷的在resume和pause狀態之間切換:設備進入睡眠、activity需要的結果已傳遞過來了或則新的intent到達時。所以這兩個方法應該是輕量級的。

Activity在整個生命周期中定義了以下方法,這些方法是以hook的形式定義的,你可以在子類中重寫他們,一般來說子類都要覆蓋onCreate(Bundle)來初始化一些數據而重寫onPause()來提交用戶的數據。一般會在最後調用父類的構造函數

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