Intent和Intent過濾器

2021-08-01 14:33:21 字數 2001 閱讀 6475

intent 是乙個訊息傳遞物件,您可以使用它從其他應用元件請求操作。儘管 intent 可以通過多種方式促進元件之間的通訊,但其基本用例主要包括以下三個

intent startupintent = new intent(intent.action_main);

startupintent.addcategory(intent.category_launcher);

packagemanager pm=getactivity().getpackagemanager();

listactivities = pm.queryintentactivities(startupintent, 0);

resolveinfo mresolveinfo = macticities.get(position);

data和type

data屬性通常用於向action屬性提供操作的資料。data屬性接受乙個uri物件。

uri結構

://:/[||

例如:

content:

android uri簡介

uri中沒有指定scheme 那麼uri無效。沒有指定host,uri無效。

type屬性用於指定改data屬性所指定uri對應的mime型別,這種mime可以是自定義的型別,只要符合abc/xyz格式的字串即可。例如:「text/plain」。

若要同時設定 uri 和 mime 型別,請勿呼叫 setdata() 和 settype(),因為它們會互相抵消彼此的值。請始終使用 setdataandtype() 同時設定 uri 和 mime 型別。

extra

攜帶完成請求操作所需的附加資訊的鍵值對。通過intent在多個activity之間進行資料互動。

可以使用各種putextra()方法新增 extra 資料,每種方法均接受兩個引數:鍵名和值。您還可以建立乙個包含所有 extra 資料的 bundle 物件,然後使用putextras()將bundle 插入 intent 中。

如需宣告自己的 extra 鍵(對於應用接收的 intent),請確保將應用的軟體包名稱作為字首。 例如:

static final string extra_***xx = 「com.example.extra_***xx」;

標誌flags

在 intent 類中定義的、充當 intent 元資料的標誌。 標誌可以指示 android 系統如何啟動 activity(例如,activity 應屬於哪個任務),以及啟動之後如何處理(例如,它是否屬於最近的 activity 列表)。

android:mimetype=""

android:scheme=""

android:host=""

android:port=""

android:path=""

android:pathprefix=""

android:pathpattern=""

/>

mimetype是指**型別,比如image/jpeg,audio/mpeg4-generic,video/* 等

匹配規則:

1.過濾器只設定了mimetype型別

intent中的mimetype屬性必須一致才能匹配。

uri就為預設值即schema必須為content或file才能匹配。

2.既有uri又有mimetype

intent的setdataandtype 就需一樣

在過濾規則中如下兩種方法一樣

Intent使用和Intent過濾器

功能 處理顯式intent和隱式intent 如果元件不含有過濾器,只能接受顯式intent 在使用intent過濾器測試intent物件時,僅測試三個方面 action,data和category 使用方法 配置檔案中標籤內 例外 context.registerreceiver 動態註冊broa...

顯式Intent和隱式Intent

size medium size medium 2011 09 12 09 35 顯式intent和隱式intent區別 android當中顯式intent和隱式intent的區別 定義 intent定義 intent是一種在不同元件之間傳遞的請求訊息,是應用程式發出的請求和意圖。作為乙個完整的訊息...

Intent和PendingIntent的區別

intent英文意思是意圖,pending表示即將發生或來臨的事情。pendingintent這個類用於處理即將發生的事情。比如在通知notification中用於跳轉頁面,但不是馬上跳轉。intent 是及時啟動,intent 隨所在的activity 消失而消失。intent一般是用作activ...