為什么要實現(xiàn)序列化接口?
首先你要明確parcelable接口是干什么用的!
為什么安卓上提供這個界面!只有知道這個道理,你才能知道它是否合適!
這個界面在Android中的常用是在aidl中!目的是夸進程傳輸數(shù)據(jù)!再進一步,就是內(nèi)存共享!比如在intent中傳遞自定義對象的時候,也有實現(xiàn)這個接口的方法!當(dāng)然,intent也提供了一種交付可序列化接口的方法!這是一個java序列化接口!和parcelable比,性能還不如parcelable!而且可序列化接口更適合持久化序列化保存在本地!所以持久存儲推薦使用serializable,objectinputstream和objectOutputSTr
initent組件有哪些屬性?
答:意圖組件主要有以下四個重要屬性:
Action屬性的值是一個字符串,表示系統(tǒng)中已經(jīng)定義的一系列常用動作。通過setAction()方法或在清單文件AndroidManif://.。
Category屬性用于指定執(zhí)行當(dāng)前操作的環(huán)境。通過addCategory()方法或在清單文件AndroidManifest.xml中設(shè)置。默認值為CAT
安卓關(guān)鍵組件或特點有哪些?
對于一個Android應(yīng)用程序,它由四個關(guān)鍵的構(gòu)件組成:活動、意圖接收者、服務(wù)和內(nèi)容提供者。
但是,并不是每個Android應(yīng)用都需要這四個構(gòu)建模塊,這不是必須的。有時,我們只需要將這四個構(gòu)件中的幾個組合到我們的應(yīng)用程序中。
當(dāng)我們知道我們的應(yīng)用需要哪些構(gòu)建模塊時,我們需要在AndroidManifest.xml中注冊這些構(gòu)建模塊的列表,這是一個xml配置文件,用來定義我們的應(yīng)用的組件、功能和必要條件。每個Android應(yīng)用程序都需要這個配置文件。為了機器人生活在st.xml的模式中,我們將解釋四種構(gòu)造塊:
1、活動
活動是安卓最基本的積木。在應(yīng)用程序中,一個活動通常是一個單獨的屏幕。每個活動都作為一個獨立的類實現(xiàn),并從基類Activity繼承。這個活動類將顯示一個由幾個視圖控件組成的用戶界面,并響應(yīng)事件。大多數(shù)應(yīng)用程序?qū)鄠€屏幕。例如,短消息應(yīng)用程序?qū)⒕哂杏糜陲@示聯(lián)系人列表的屏幕、用于編寫短消息的第二屏幕以及用于瀏覽舊短消息和設(shè)置系統(tǒng)的屏幕。每個這樣的屏幕都是一個活動。從一個屏幕導(dǎo)航到另一個屏幕非常簡單。在某些應(yīng)用程序中,一個屏幕甚至?xí)祷匾粋€值給前一個屏幕。
當(dāng)新屏幕打開時,前一個屏幕將暫停并保存在歷史堆棧中。用戶可以返回到歷史堆棧中的上一個屏幕。當(dāng)不再使用該屏幕時,也可以將其從歷史堆棧中刪除。默認情況下,Android會將運行屏幕從主屏幕保留到每個應(yīng)用程序。
Android使用特殊的類意圖在屏幕之間移動。Intent類用于描述應(yīng)用程序?qū)⒆鍪裁础T谝鈭D的描述結(jié)構(gòu)中,有兩個最重要的部分:動作和動作對應(yīng)的數(shù)據(jù)。典型的動作類型有:main(活動的門戶)、VIEW、PICK、EDIT等。對應(yīng)于該動作的數(shù)據(jù)以URI的形式表示。例如,查看一個人的聯(lián)系信息,您需要創(chuàng)建一個具有活動類型視圖的意向和一個代表此人的URI。
與之相關(guān)的一個類叫做IntentFilter。與意圖是做某事的有效請求相比,意圖過濾器用于描述活動(或意圖接收者)可以操作哪些意圖。如果一個活動想展示一個人聯(lián)系信息,它需要聲明一個IntentFilter,需要知道如何處理視圖動作和代表一個人的URI。IntentFilter需要在AndroidManifest.xml中定義
通過解析各種意圖,從一個屏幕導(dǎo)航到另一個屏幕非常簡單。向前導(dǎo)航時,活動將調(diào)用startActivity(IntentmyIntent)方法。然后,系統(tǒng)將在所有安裝的應(yīng)用程序中定義IntentFilter。找到與我的意圖最匹配的意圖對應(yīng)的活動。在收到來自myIntent的通知后,新的活動開始運行。當(dāng)調(diào)用startActivity方法時,它將觸發(fā)解析myIntent的操作。這種機制提供了兩個主要好處:
◆活動可以重用從其他組件以意圖形式生成的請求;
◆活動可以隨時被具有相同IntentFilter的新活動替換。
2、意向接受者
當(dāng)您希望您的應(yīng)用程序響應(yīng)外部事件時(例如當(dāng)有打進來時,當(dāng)數(shù)據(jù)網(wǎng)絡(luò)可用時,或者在晚上),您可以使用意向接收器。盡管意向接收方將使用NotificationManager在感興趣的事件發(fā)生時通知用戶,但它不能生成UI。IntentReceiver在AndroidManifest.xml中注冊,但也可以用()在代碼中注冊。當(dāng)觸發(fā)了意圖接收器時,您的應(yīng)用程序不需要為請求調(diào)用意圖接收器,系統(tǒng)將在必要時啟動您的應(yīng)用程序。各種應(yīng)用程序也可以通過使用()向其他應(yīng)用程序廣播它們自己的意圖接收器。
3、服務(wù)
服務(wù)是一個生命周期很長的程序,沒有用戶界面。一個很好的例子是媒體播放器播放播放列表中的歌曲。在媒體播放器的應(yīng)用程序中,應(yīng)該有多個活動,以便用戶可以選擇歌曲并播放它們。而音樂播放的功能卻沒有相應(yīng)的活動,因為用戶在導(dǎo)航到其他屏幕時肯定會認為音樂應(yīng)該還在播放。在這個例子中,媒體播放器的活動將使用()來啟動一個服務(wù),這樣音樂就可以在后臺繼續(xù)播放。同時,系統(tǒng)將保持該服務(wù)運行,直到該服務(wù)結(jié)束。此外,我們可以使用()方法連接到一個服務(wù)(如果服務(wù)沒有運行,它將被啟動)。連接到一個服務(wù)后,我們還可以通過服務(wù)提供的接口與它進行通信。以媒體播放器為例,我們也可以暫停和重放。
4、內(nèi)容提供商
應(yīng)用程序可以將其數(shù)據(jù)保存到文件、SQL數(shù)據(jù)庫甚至任何有效的設(shè)備中。中等。當(dāng)您希望與其他應(yīng)用程序共享您的應(yīng)用程序數(shù)據(jù)時,ContentProvider將非常有用。內(nèi)容提供者類實現(xiàn)一組標準方法,以便其他應(yīng)用程序可以保存或讀取由該內(nèi)容提供者處理的各種數(shù)據(jù)類型。