安卓開發(fā)之a(chǎn)ctivity詳解(sumzom)

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容