app中,一個(gè)activity通常是指的一個(gè)單獨(dú)的屏幕,相當(dāng)于網(wǎng)站里面的一個(gè)網(wǎng)頁,它是對(duì)用戶可見的,它上面可以顯示一些控件,并且可以監(jiān)聽處理用戶的時(shí)間做出響應(yīng)。
那么activity之間如何進(jìn)行通信呢?他們是通過intent進(jìn)行通信以及切換。Intent有兩個(gè)重要部分(動(dòng)作傳遞,數(shù)據(jù)傳遞);
?神馬是Activity?
activity是四大組件,代表者用戶可操作界面,可與用戶進(jìn)行交互。比如,拍照,登陸注冊(cè)等交互界面。一個(gè)應(yīng)用程序通常由多個(gè)activity松耦合(低耦合)組成,當(dāng)用戶打開app見到的第一個(gè)界面我們稱之為MianActivity。一個(gè)activity可以啟動(dòng)另外一個(gè)activity,當(dāng)新activity啟動(dòng)時(shí),前一個(gè)activity將stop,但系統(tǒng)會(huì)將其保存到后臺(tái)棧(back stack),并且獲得用戶焦點(diǎn)。Back stack遵循后進(jìn)先出的原則,當(dāng)用戶按手機(jī)back鍵時(shí),當(dāng)前activity會(huì)從backstack移除,前一個(gè)恢復(fù)。
Activity回調(diào)函數(shù):創(chuàng)建,啟動(dòng),恢復(fù),暫停,停止,銷毀;
綁定視圖:SetContentView(view)
Activity之間通過intent通信。
Intent intent = new Intent(MainActivity.this,orther.class);
startActivity(intent);
?MVC模式:
M(Model模型):Model是應(yīng)用程序的主體部分,所有的業(yè)務(wù)邏輯都應(yīng)該寫在這里,在Android中Model層與JavaEE中的變化不大,如:對(duì)數(shù)據(jù)庫的操作,對(duì)網(wǎng)絡(luò)等的操作都放在該層(但不是說它們都放在同一個(gè)包中,可以分開放,但它們統(tǒng)稱為Model層)。
V(View視圖):是應(yīng)用程序中負(fù)責(zé)生成用戶界面的部分,也是在整個(gè)MVC架構(gòu)中用戶唯一可以看到的一層,接收用戶輸入,顯示處理結(jié)果;在Android應(yīng)用中一般采用XML文件里德界面的描述,使用的時(shí)候可以非常方便的引入,當(dāng)然也可以使用JavaScript+Html等方式作為View。
C(Controller控制層)android的控制層的重任就要落在眾多的activity的肩上了,所以在這里就要建議大家不要在activity中寫太多的代碼,盡量能過activity交割Model業(yè)務(wù)邏輯層處理。
?如何對(duì)activity應(yīng)用樣式和主題進(jìn)行操作?
默認(rèn)情況下,一個(gè)activity占據(jù)整個(gè)屏幕。我們也可以定制Activity,以窗口的形式顯示,用來提醒永輝將執(zhí)行某些操作。在這種情況下,以對(duì)話框的形式來顯示activity以引起用戶的注意是個(gè)不錯(cuò)的方法。
修改AndroidManifest.xml文件中的標(biāo)簽,添加android:theme屬性。
例:
android:theme="@android:style/Theme.Dialog"
android:name="com.example.helloandroid.MainActivity"
android:label="@string/app_name" >
?隱藏Activity標(biāo)題(ActionBar)
方法一:
在代碼中在綁定視圖之前聲明
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);//隱藏標(biāo)題欄,寫在綁定///視圖之前
setContentView(R.layout.activity_main);
//綁定視圖層
initWithView();
Intent intent = new Intent();
startActivity(intent);
}
方法二:
在AndroidManifest文件中:
android:theme="@android:style/Theme.NoTitleBar"
>
相信大家對(duì)activity有初步的了解了吧!?。∥冶容^常用的APP在線自動(dòng)化測試工具:www.ineice.com