成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android中的Intent詳細(xì)講解

系統(tǒng)
在一個(gè)Android應(yīng)用中,主要是由四種組件組成的,這四種組件可參考“Android應(yīng)用的構(gòu)成”。

在一個(gè)Android應(yīng)用中,主要是由四種組件組成的,這四種組件可參考“Android應(yīng)用的構(gòu)成”。

而這四種組件是獨(dú)立的,它們之間可以互相調(diào)用,協(xié)調(diào)工作,最終組成一個(gè)真正的Android應(yīng)用。

在這些組件之間的通訊中,主要是由Intent協(xié)助完成的。

Intent負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將 Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。

因此,Intent在這里起著一個(gè)媒體中介的作用,專(zhuān)門(mén)提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。

例如,在一個(gè)聯(lián)系人維護(hù)的應(yīng)用中,當(dāng)我們?cè)谝粋€(gè)聯(lián)系人列表屏幕(假設(shè)對(duì)應(yīng)的Activity為listActivity)上,點(diǎn)擊某個(gè)聯(lián)系人后,希望能夠跳出此聯(lián)系人的詳細(xì)信息屏幕(假設(shè)對(duì)應(yīng)的Activity為detailActivity)

為了實(shí)現(xiàn)這個(gè)目的,listActivity需要構(gòu)造一個(gè) Intent,這個(gè)Intent用于告訴系統(tǒng),我們要做“查看”動(dòng)作,此動(dòng)作對(duì)應(yīng)的查看對(duì)象是“某聯(lián)系人”,然后調(diào)用startActivity (Intent intent),

將構(gòu)造的Intent傳入,系統(tǒng)會(huì)根據(jù)此Intent中的描述,到ManiFest中找到滿(mǎn)足此Intent要求的Activity,系統(tǒng)會(huì)調(diào)用找到的 Activity,即為detailActivity,最終傳入Intent,detailActivity則會(huì)根據(jù)此Intent中的描述,執(zhí)行相應(yīng)的操作。

一、抽象描述要描述什么

在Android參考文檔中,對(duì)Intent的定義是執(zhí)行某操作的一個(gè)抽象描述(確實(shí)很抽象)。我們先來(lái)看看這里的抽象描述,到底描述了什么。

首先,是要執(zhí)行的動(dòng)作(action)的一個(gè)簡(jiǎn)要描述,如VIEW_ACTION(查看)、EDIT_ACTION(修改)等,Android為我們定義了一套標(biāo)準(zhǔn)動(dòng)作:

復(fù)制內(nèi)容到剪貼板

代碼:
MAIN_ACTION
VIEW_ACTION
EDIT_ACTION
PICK_ACTION
GET_CONTENT_ACTION
DIAL_ACTION
CALL_ACTION
SENDTO_ACTION
ANSWER_ACTION
INSERT_ACTION
DELETE_ACTION
RUN_ACTION
LOGIN_ACTION
CLEAR_CREDENTIALS_ACTION
SYNC_ACTION
PICK_ACTIVITY_ACTION
WEB_SEARCH_ACTION
  

此外,我們還可以根據(jù)應(yīng)用的需要,定義我們自己的動(dòng)作,并可定義相應(yīng)的Activity來(lái)處理我們的自定義動(dòng)作。

其次,是執(zhí)行動(dòng)作要操作的數(shù)據(jù)(data),Android中采用指向數(shù)據(jù)的一個(gè)URI來(lái)表示,如在聯(lián)系人應(yīng)用中,一個(gè)指向某聯(lián)系人的URI可能為:content://contacts/1。

這種URI表示,通過(guò) ContentURI這個(gè)類(lèi)來(lái)描述,具體可以參考android.net.ContentURI類(lèi)的文檔。

以聯(lián)系人應(yīng)用為例,以下是一些action / data對(duì),及其它們要表達(dá)的意圖:

復(fù)制內(nèi)容到剪貼板

代碼:
VIEW_ACTION content://contacts/1-- 顯示標(biāo)識(shí)符為"1"的聯(lián)系人的詳細(xì)信息
EDIT_ACTION content://contacts/1-- 編輯標(biāo)識(shí)符為"1"的聯(lián)系人的詳細(xì)信息
VIEW_ACTION content://contacts/-- 顯示所有聯(lián)系人的列表
PICK_ACTION content://contacts/-- 顯示所有聯(lián)系人的列表,并且允許用戶(hù)在列表中選擇一個(gè)聯(lián)系人,然后把這個(gè)聯(lián)系人返回給父activity。例如:電子郵件客戶(hù)端可以使用這個(gè)Intent,要求用戶(hù)在聯(lián)系人列表中選擇一個(gè)聯(lián)系人

另外,除了action和data這兩個(gè)重要屬性外,還有一些附加屬性:

category(類(lèi)別),被執(zhí)行動(dòng)作的附加信息。例如 LAUNCHER_CATEGORY 表示Intent 的接受者應(yīng)該在Launcher中作為***應(yīng)用出現(xiàn);而ALTERNATIVE_CATEGORY表示當(dāng)前的Intent是一系列的可選動(dòng)作中的一個(gè),這些動(dòng)作可以在同一塊數(shù)據(jù)上執(zhí)行。

type(數(shù)據(jù)類(lèi)型),顯式指定Intent的數(shù)據(jù)類(lèi)型(MIME)。一般Intent的數(shù)據(jù)類(lèi)型能夠根據(jù)數(shù)據(jù)本身進(jìn)行判定,但是通過(guò)設(shè)置這個(gè)屬性,可以強(qiáng)制采用顯式指定的類(lèi)型而不再進(jìn)行推導(dǎo)。

component(組件),指定Intent的的目標(biāo)組件的類(lèi)名稱(chēng)。通常 Android會(huì)根據(jù)Intent 中包含的其它屬性的信息,比如action、data/type、category進(jìn)行查找,最終找到一個(gè)與之匹配的目標(biāo)組件。但是,如果 component這個(gè)屬性有指定的話(huà),將直接使用它指定的組件,而不再執(zhí)行上述查找過(guò)程。指定了這個(gè)屬性以后,Intent的其它所有屬性都是可選的。

extras(附加信息),是其它所有附加信息的集合。使用extras可以為組件提供擴(kuò)展信息,比如,如果要執(zhí)行“發(fā)送電子郵件”這個(gè)動(dòng)作,可以將電子郵件的標(biāo)題、正文等保存在extras里,傳給電子郵件發(fā)送組件。

總之,action、 data/type、category和extras 一起形成了一種語(yǔ)言。

這種語(yǔ)言使系統(tǒng)能夠理解諸如“查看某聯(lián)系人的詳細(xì)信息”之類(lèi)的短語(yǔ)。

隨著應(yīng)用不斷的加入到系統(tǒng)中,它們可以添加新的action、 data/type、category來(lái)擴(kuò)展這種語(yǔ)言。

應(yīng)用也可以提供自己的Activity來(lái)處理已經(jīng)存在的這樣的“短語(yǔ)”,從而改變這些“短語(yǔ)”的行為。

【編輯推薦】

  1. Android曝安全漏洞 黑客可安裝擊鍵記錄軟件
  2. 新版Android SDK搞差別待遇 Google激怒開(kāi)發(fā)人員
  3. 初識(shí)Android程序開(kāi)發(fā)(1)

 

責(zé)任編輯:龐桂玉 來(lái)源: IT168
相關(guān)推薦

2013-01-10 15:36:44

Android開(kāi)發(fā)組件Intent

2014-07-15 10:16:02

AndroidIntent

2013-01-10 14:54:48

Android開(kāi)發(fā)組件Intent

2010-01-25 16:52:22

Android Int

2013-05-27 14:06:14

Android開(kāi)發(fā)移動(dòng)開(kāi)發(fā)Intent機(jī)制

2013-03-28 09:07:37

Android開(kāi)發(fā)Intent機(jī)制

2012-07-23 13:22:42

Intent Filt安全Android

2009-06-30 10:59:38

fckeditorJSP

2010-01-06 09:40:07

Ubuntu時(shí)間設(shè)置

2023-03-17 08:11:25

2010-05-17 16:31:04

IIS Request

2011-06-14 15:39:46

單元測(cè)試

2009-09-25 17:03:29

Hibernate是什

2009-12-14 11:29:19

Linux查看命令

2010-04-29 10:15:01

Unix系統(tǒng)

2010-06-17 12:57:27

如何修復(fù)Grub

2011-04-06 17:35:17

Access數(shù)據(jù)庫(kù)空記錄

2010-08-18 10:13:55

IntentAndroid

2010-05-07 14:11:06

Unix--Tripw

2009-12-03 16:39:09

phpCB批量轉(zhuǎn)換
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产色在线 | 欧美 日韩 国产 在线 | 在线不卡av | 麻豆一区一区三区四区 | 国产成人av在线播放 | 天天操天天操 | 国产最好的av国产大片 | 国产一区精品 | 亚洲综合国产 | 精品久久久久久久久久久久久久 | av国产精品毛片一区二区小说 | 91精品久久久久久久久中文字幕 | 中文字幕一区二区三区日韩精品 | 免费观看一级毛片 | 一区二区三区在线观看视频 | 国产在线一区二区三区 | 午夜国产一级 | 亚洲久久在线 | 午夜国产精品视频 | 综合精品久久久 | 一本色道精品久久一区二区三区 | 日韩精品二区 | 国产大毛片 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 日韩不卡一区二区 | 亚洲精品日韩综合观看成人91 | 成年人精品视频 | 国内毛片毛片毛片毛片 | 一区二区视频 | 国产一区二区精华 | 国产成人网 | 一区二区在线免费观看 | 午夜日韩 | 亚洲不卡视频 | 亚洲午夜网| 国产电影精品久久 | 91精品国产综合久久香蕉922 | 久久高清 | 在线国产一区二区三区 | 久久精品成人一区 | 欧美精品一区二区三区在线四季 |