Intent詳解

Intent主要有三個(gè)基本的使用用例:

1.啟動(dòng)一個(gè)Activity

2.啟動(dòng)一個(gè)Service

3.發(fā)送一個(gè)broadcast

Intent 類(lèi)型

1.Explicit intents

? ? 在使用上,根據(jù)知道的類(lèi)名去啟動(dòng)一個(gè)Activity或Service。eg.更具用戶的響應(yīng)去打開(kāi)activity,開(kāi)啟一個(gè)服務(wù)在后臺(tái)下載文件。

2.Implicit intents

? ? 不是制定一個(gè)明確的組件,而是聲明一個(gè)通用的執(zhí)行動(dòng)作,它允許一個(gè)組件從另一個(gè)應(yīng)用程序來(lái)處理它。eg.如果你想在地圖上顯示用戶的位置,你可以用隱示意圖顯示請(qǐng)求一個(gè)其他可以用的應(yīng)用顯示具體位置。

? ? 如果啟動(dòng)一個(gè)顯示意圖,系統(tǒng)會(huì)明確的打開(kāi),啟動(dòng)。如果啟動(dòng)一個(gè)隱示意圖,需要在可以啟動(dòng)的組建在 Manifest 中添加 intent filters 。當(dāng)啟動(dòng)時(shí),系統(tǒng)會(huì)從應(yīng)用中找出 能匹配的意圖。如果有多個(gè),用戶需要選擇打開(kāi)。

注:在android5.0以后,啟動(dòng)一個(gè)服務(wù)必須是Explicit intents。

以下 form: http://liangruijun.blog.51cto.com/3061169/634411/

1.Intent的Action屬性

Action是指Intent要完成的動(dòng)作,是一個(gè)字符串常量。

2.Intent的Data屬性

Intent的Data屬性是執(zhí)行動(dòng)作的URI和MIME類(lèi)型,不同的Action有不同的Data數(shù)據(jù)指定。比如:ACTION_EDIT Action應(yīng)該和要編輯的文檔URI Data匹配,ACTION_VIEW應(yīng)用應(yīng)該和要顯示的URI匹配。

3.Intent的Category屬性

Intent中的Category屬性是一個(gè)執(zhí)行動(dòng)作Action的附加信息。比如:CATEGORY_HOME則表示放回到Home界面,ALTERNATIVE_CATEGORY表示當(dāng)前的Intent是一系列的可選動(dòng)作中的一個(gè)。

4.Intent的Type屬性

Intent的Type屬性顯式指定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)。

5.Intent的Compent屬性

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

6.Intent的Extra屬性

Intent的Extra屬性是添加一些組件的附加信息。比如,如果我們要通過(guò)一個(gè)Activity來(lái)發(fā)送一個(gè)Email,就可以通過(guò)Extra屬性來(lái)添加subject和body。


接收一個(gè)隱示意圖:

接收意圖的組件需要在Manifest中相應(yīng)組件位置添加<inter-filer>.

最后編輯于
?著作權(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),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Intent 是 Android 非常常用的一個(gè)用于組件間互相通信的信息對(duì)象,常用于啟動(dòng)組件和傳遞數(shù)據(jù),大部分的程...
    seven_Android閱讀 35,255評(píng)論 1 38
  • Intent Intent介紹 Intent是Android應(yīng)用組件之間通信的消息對(duì)象,它通常表明了兩個(gè)通信組件的...
    whyles閱讀 600評(píng)論 0 4
  • Intent 意圖Android 四大組件的紐帶,它的運(yùn)行機(jī)制是(Run-time-binding)運(yùn)行時(shí)綁定機(jī)制...
    Lost_Robot閱讀 617評(píng)論 0 0
  • 夜真木訥 若不是那白日開(kāi)玩笑般的 推它一把 它的初吻 也不會(huì) 給了星星 月光則是個(gè)十足十的情圣 看它輕柔的 一把抱...
    SillyG閱讀 233評(píng)論 2 1
  • 為了創(chuàng)造健康,你需要照顧三個(gè)基本方面——食物、活動(dòng)、休息。 正確地吃 關(guān)于食物,一個(gè)最重要的方面是你...
    Soyang100閱讀 553評(píng)論 0 0

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