今天就跟大家聊聊有關(guān)Android應(yīng)用程序有哪些關(guān)鍵點,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了大通免費建站歡迎大家使用!
1、Activity
Activity是Android構(gòu)造塊中最基本的一種,在應(yīng)用中,一個 activity通常就是一個單獨的屏幕。每一個activity都被實現(xiàn)為一個獨立的類,并且繼承于Activity這個基類。這個activity類將會顯示由幾個Views控件組成的用戶接口,并對事件做出響應(yīng)。大部份的應(yīng)用都會包含多個的屏幕。例如,一個短消息應(yīng)用程序?qū)幸粋€屏幕用于顯示聯(lián)系人列表,第二個屏幕用于寫短消息,同時還會有用于瀏覽舊短消息及進(jìn)行系統(tǒng)設(shè)置的屏幕。每一個這樣的屏幕,就是一個activity。從一個屏幕導(dǎo)航到另一個屏幕是很簡單的。在一些應(yīng)用中,一個屏幕甚至?xí)祷刂到o前一個屏幕。
當(dāng)一個新的屏幕打開后,前一個屏幕將會暫停,并保存在歷史堆棧中。用戶可以返回到歷史堆棧中的前一個屏幕。當(dāng)屏幕不再使用時,還可以從歷史堆棧中刪除。默認(rèn)情況下,Android將會保留從主屏幕到每一個應(yīng)用的運行屏幕。
Android使用了Intent這個特殊類,實現(xiàn)在屏幕與屏幕之間移動。 Intent類用于描述一個應(yīng)用將會做什么事。在Intent的描述結(jié)構(gòu)中,有兩個最重要的部分:動作和動作對應(yīng)的數(shù)據(jù)。典型的動作類型有:MAIN(activity的門戶)、VIEW、PICK、EDIT等。而動作對應(yīng)的數(shù)據(jù)則以URI的形式進(jìn)行表示。例如:要查看一個人的聯(lián)系方式,你需要創(chuàng)建一個動作類型為VIEW的intent,以及一個表示這個人的URI。
與之有關(guān)系的一個類叫IntentFilter。相對于intent是一個有效的做某事的請求,一個intent filter則用于描述一個activity(或者Intent Receiver)能夠操作哪些intent。一個activity如果要顯示一個人的聯(lián)系方式時,需要聲明一個IntentFilter,這個 IntentFilter要知道怎么去處理VIEW動作和表示一個人的URI。IntentFilter需要在AndroidManifest.xml中定義。
通過解析各種intent,從一個屏幕導(dǎo)航到另一個屏幕是很簡單的。當(dāng)向前導(dǎo)航時,activity將會調(diào)用 startActivity(Intent myIntent)方法。然后,系統(tǒng)會在所有安裝的應(yīng)用程序中定義的IntentFilter中查找,找到最匹配myIntent的Intent對應(yīng)的 activity。新的activity接收到myIntent的通知后,開始運行。當(dāng)startActivity方法被調(diào)用將觸發(fā)解析myIntent 的動作,這個機(jī)制提供了兩個關(guān)鍵好處:
◆Activities能夠重復(fù)利用從其它組件中以Intent的形式產(chǎn)生的一個請求;
◆Activities可以在任何時候被一個具有相同IntentFilter的新的Activity取代。
2、Intent Receiver
當(dāng)你希望你的應(yīng)用能夠?qū)σ粋€外部的事件(如當(dāng)電話呼入時,或者數(shù)據(jù)網(wǎng)絡(luò)可用時,或者到了晚上時)做出響應(yīng),你可以使用一個Intent Receiver。雖然Intent Receiver在感興趣的事件發(fā)生時,會使用NotificationManager通知用戶,但它并不能生成一個UI。Intent Receiver在AndroidManifest.xml中注冊,但也可以在代碼中使用 Context.registerReceiver()進(jìn)行注冊。當(dāng)一個intent receiver被觸發(fā)時,你的應(yīng)用不必對請求調(diào)用intent receiver,系統(tǒng)會在需要的時候啟動你的應(yīng)用。各種應(yīng)用還可以通過使用Context.broadcastIntent()將它們自己的 intent receiver廣播給其它應(yīng)用程序。
3、Service
一個Service是一段長生命周期的,沒有用戶界面的程序。比較好的一個例子就是一個正在從播放列表中播放歌曲的媒體播放器。在一個媒體播放器的應(yīng)用中,應(yīng)該會有多個activity,讓使用者可以選擇歌曲并播放歌曲。然而,音樂重放這個功能并沒有對應(yīng)的activity,因為使用者當(dāng)然會認(rèn)為在導(dǎo)航到其它屏幕時音樂應(yīng)該還在播放的。在這個例子中,媒體播放器這個 activity會使用Context.startService()來啟動一個service,從而可以在后臺保持音樂的播放。同時,系統(tǒng)也將保持這個service一直執(zhí)行,直到這個service運行結(jié)束。另外,我們還可以通過使用Context.bindService()方法,連接到一個service上(如果這個service還沒有運行將啟動它)。當(dāng)連接到一個service之后,我們還可以service提供的接口與它進(jìn)行通訊。拿媒體播放器這個例子來說,我們還可以進(jìn)行暫停、重播等操作。
4、Content Provider
應(yīng)用程序能夠?qū)⑺鼈兊臄?shù)據(jù)保存到文件中、SQL數(shù)據(jù)庫中,甚至是任何有效的設(shè)備中。當(dāng)你想將你的應(yīng)用數(shù)據(jù)與其它的應(yīng)用共享時,Content Provider將會很有用。一個Content Provider類實現(xiàn)了一組標(biāo)準(zhǔn)的方法,從而能夠讓其它的應(yīng)用保存或讀取此Content Provider處理的各種數(shù)據(jù)類型。
看完上述內(nèi)容,你們對Android應(yīng)用程序有哪些關(guān)鍵點有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。