java中的Activity

來源:https://blog.csdn.net/lidandan2016/article/details/78030688java

 

Activity
首先,Activity是Android系統中的四大組件之一,能夠用於顯示View。Activity是一個與用記交互的系統模塊,幾乎全部的Activity都是和用戶進行交互的,可是若是這樣就能說Activity主要是用來顯示View就不太正確了。android

在深刻了解Activity以前,咱們先要知道一下MVC設計模式,在JAVAEE 中MVC設計模式已經很經典了,並且分的也比較清晰了,可是在Android中,好多人對MVC在Android開發中的應用不是很清楚,下面我就先來介紹一下MVC在Android開發中的應用:數據庫

M(Model 模型):Model是應用程序的主體部分,全部的業務邏輯都應該寫在這裏,在Android中Model層與JavaEE中的變化不大,如:對數據庫的操做,對網絡等的操做都放在該層(但不是說它們都放在同一個包中,能夠分開放,但它們統稱爲Model層)。
V(View 視圖):是應用程序中負責生成用戶界面的部分,也是在整個MVC架構中用戶惟一能夠看到的一層,接收用戶輸入,顯示處理結果;在Android應用中通常採用XML文件裏德界面的描述,使用的時候能夠很是方便的引入,固然也可使用JavaScript+Html等方式做爲View。
C(Controller控制層)android的控制層的重任就要落在衆多的activity的肩上了,因此在這裏就要建議你們不要在activity中寫太多的代碼,儘可能能過activity交割Model業務邏輯層處理。設計模式

好了,在介紹過Android應用開發中的MVC架構後,咱們就能夠很明確的知道,在Android中Activity主要是用來作控制的,它能夠選擇要顯示的View,也能夠從View中獲取數據而後把數據傳給Model層進行處理,最後再來顯示出處理結果。網絡

介紹過Activity的主要做用後,那麼咱們就要詳細說一下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();
}函數

onCreate(Bundle) 函數是你進行初始化的地方,這個也是執行
setContentView(View)函數的地方,setContentView(View)函數能夠傳入一個由XML
編制的UI界面,可使UI和具體實現徹底分離。
onPause()函數是處理用戶離開當前 Activity 的地方。更重要的是,任何在當前
Activity中的任何改變都要在這個函數中提交。工具

Activity有四種狀態:
活動狀態,當Activity處於Stack(棧)頂時,就是手機當前的現實屏幕,這是 Activity就
處於activity或者運行狀態。
運行可是失去焦點,當Activity還處於運行狀態時,可是屏幕是有另一個Activity
處於文檔處於焦點狀態,當前的Activity就處於pause。
中止,當Activity被另外一個Activity徹底覆蓋的時候,就被中止了,其實就是雖然在
運行,可是用戶卻看不見。
結束,當Activity處於pause或者stop時,系統能夠結束 Activity,回收資源,這
是Activity就是處於結束狀態了。
處於結束狀態的是Activity,若是要使用戶可見,只要重啓才能夠。佈局

Activity的響應時間
當前Activity所在的線程爲主線程,它的響應時間爲5秒,若是在當前運行的Activity中進行耗時的操做且響應時間起過5秒,那麼程序就會報ANR錯誤。因此,這也是不建議在Activity中寫太多複雜代碼的緣由之一。
固然,有些代碼只能寫在Activity中,否則就運行不了(它們不是生命週期方法),好比你想要得到android系統或者硬件一的些信息,就必須在Activity中寫出來,若是單獨寫一個工具類得到不了。測試

 


1.Activity的主要做用

Activity是Android一個很是重要的用戶接口,是可見的,用戶和應用程序之間進行交互的接口。在每一個Activity中均可以放不少控件,因此也能夠把Activity看做控件的容器。

2.建立Activity的要點

1)一個Activity就是一個類,而且這個類要繼承Activity,而這個被繼承的Activity來源於android.jar包
2)須要複寫onCreate方法,當一個Activity第一次運行時Android操做系統就會調用onCreate方法
3)由於Activity是應用程序的組件,因此每個Activity都必須在AndroidManifest.xml裏面註冊,manifest至關於應用程序清單。
4) 爲Activity添加必要的控件

3.在AndroidManifest.xml文件中註冊應用Activity的方法

1) 註冊Activity的時候name的時候前面加點,由於和包名合起來就恰好是這個類(或者說Activity)的路徑。
2) label,就是在頁面上方白色的部分顯示的文字
3)intent-filter,暫時不用管,意思就是你在哪一個activity配置這個東西,哪一個activity就在應用打開的時候第一個運行

4.在Activity中添加控件,就是在layout文件夾中建立佈局文件(嚴格意義上來講並非每個Activity都要建立一個相應的xml佈局文件,好比:TextView textview = new TextView(this);

//之前我一直覺得每建立一個Activity必須相應地也要建立一個layout文件,如今發現不是這樣,也能夠按照這個方法,建立一個簡單的TextView,把Context設置爲this,設置一個文本值,而後再將這個TextView設置爲ContentView.這種我的以爲更加方便測試吧。

textview.setText("This is the Artists tab");

setContentView(textview);

}

}

這樣的方法一樣工做,可是總的來講仍是建議爲每個Activity定義一個佈局文件。

1) 程序中的setContentView就是設置這個Activity所使用的佈局文件。好比:setContentView(R.layout.my_text); //說到這裏,注意一個問題,佈局文件的名稱不容許有大寫2) 在xml文件中設置的控件id會在R.java中生成id3)在應用程序中使用findViewById來取得佈局文件中的控件(前提是佈局文件中的控件必須設置相應的id),由於它的返回類型爲View,因此要強制類型轉換爲控件類型舉個例子就是 Button button =(Button)findViewById(R.id.button);————————————————版權聲明:本文爲CSDN博主「lidandan2016」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。原文連接:https://blog.csdn.net/lidandan2016/article/details/78030688

相關文章
相關標籤/搜索