java activity_java中的Activity
Activity
首先,Activity是Android系統中的四大組件之一,可以用于顯示View。Activity是一個與用記交互的系統模塊,幾乎所有的Activity都是和用戶進行交互的,但是如果這樣就能說Activity主要是用來顯示View就不太正確了。
在深入了解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中生成id
3)在應用程序中使用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
總結
以上是生活随笔為你收集整理的java activity_java中的Activity的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《VoIP技术构架(第2版·修订版)》一
- 下一篇: Maven实战 Item4 -- Mav