標籤:
1.Activity是什麼
Activity是Android系統中的四大組件之一,在MVC模式中屬於C控制層
M(Model 模型):Model是應用程式的主體對象。
V(View 視圖):是應用程式中負責產生使用者介面的部分,使用XML作為程式設計語言。
C(Controller控制層)android的控制層的重任就要落在眾多的activity的肩上了,所以在這裡就要建議大家不要在activity中寫太多的代碼,盡量能過activity交割Model商務邏輯層處理。
一個應用程式通常由多個Activities組成,他們通常是松耦合關係。通常,應用程式中第一個被展示的Activity被指定為"Main" Activity。每一個Activity然後可以啟動另一個Activity。每一次一個Activity啟動,前一個activity就停止了。當一個新Activity啟動,它被推送到棧頂(壓棧),取得使用者焦點。Back Stack符合簡單“後進先出”原則,所以,當使用者完成當前Activity然後點擊back按鈕,它被彈出棧(並且被摧毀),然後之前的Activity恢複。
2.Activity的生命週期
Activity生命週期圖
Activity 的生命週期中的系統回呼函數。
public class Activity extends ApplicationContext {
protected void onCreate(Bundle icicle);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onFreeze(Bundle outIcicle);
protected void onPause();
protected void onStop();
protected void onDestroy();
}
3.Activity的狀態類型
Activity有四種狀態:
活動狀態(Activity):當Activity處於Stack(棧)頂時,就是手機當前的現實螢幕,這是 Activity就處於activity或者運行狀態。
運行但是失去焦點(Pause):當Activity還處於運行狀態時,但是螢幕是有另外一個Activity處於文檔處於焦點狀態,當前的Activity就處於pause。
停止(Stop),當Activity被另一個Activity完全覆蓋的時候,就被停止了,其實就是雖然在運行,但是使用者卻看不見。
結束(Destroy),當Activity處於pause或者stop時,系統可以結束 Activity,回收資源,這是Activity就是處於結束狀態了。
4.Activity的回應時間
當前Activity所在的線程為主線程,它的回應時間為5秒,如果在當前啟動並執行Activity中進行耗時的操作且回應時間起過5秒,那麼程式就會報ANR錯誤。所以,這也是不建議在Activity中寫太多複雜代碼的原因之一。
當然,有些代碼只能寫在Activity中,不然就運行不了(它們不是生命週期方法),比如你想要獲得android系統或者硬體一的些資訊,就必須在Activity中寫出來,如果單獨寫一個工具類獲得不了。
Android組件Activity初探