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...