mainactivity
intent intent =new intent();
//動作
intent.setaction("com.pnag.action.good");
//分類
intent.addcategory("com.pnag.category.luck");
//資料
intent.setdataandtype(uri.parse("file://abc"), "text/plain");
try catch (interruptedexception e)
//驗證intent是否匹配成功
packagemanager pm=getpackagemanager();
activityinfoinfo=intent.resolveactivityinfo(pm,
packagemanager.match_default_only);
if(info!=null)else
至此,有時間的朋友可以慢慢讀,急用的點這裡直接看簡單講解
androidmanifest.xml:
<?xml version="1.0" encoding="utf-8"?>
""package="com.example.intentfilter"
android:versioncode="1"
android:versionname="1.0" >
"14"
android:targetsdkversion="21" />
android:allowbackup="true"
android:icon="@drawable/ic_launcher"
".mainactivity"
"android.intent.action.main" />
"android.intent.category.launcher" />
".mainactivity2"
android:label="@string/title_activity_main_activity2" >
"com.pnag.action.good"/>
"com.pnag.action.verygood"/>
"com.pnag.category.luck"/>
"android.intent.category.default"/>
"text/plain"/>
**註解
注意點:
以下方法均區分大小寫
建議使用跳轉前驗證,否則匹配不到會出錯
action、data只能乙個(多寫了,後面的覆蓋前面的),category可以多個。
setaction
匹配要求:
intent 中的 action 如果有就必須和intent-filter1中的乙個action屬性相同,如果沒有則視action屬性匹配成功。
addcategory
可以沒有,但如果有了必須對上.
值得注意的是,一旦用startactivity()、startactivityforresult方法會增加「android.intent.category.default」
從這點你就知道隱式intent為什麼要做intent-filter中新增setdataandtype
如果intent-filter中有data標籤,那麼mainactivity中必須有對應的。如果沒有,那你也不需要寫。
androidmanifest.xml中的activity的intent-filter ↩
Intent filter匹配規則
乙個activity可以有多個intent filter,乙個intent只要匹配到其中乙個就匹配成功 intent必須匹配乙個或乙個以上action才能匹配intent filter成功,但是這個還沒充分 乙個intentkw 能有1個或者0個action intent可以有0個或者多個categ...
Intent filter匹配規則
action 至少匹配乙個 setaction string 或者new intent string action category 可以不新增匹配,但是如果新增必須匹配 addcategory string categoru 當沒有新增時 系統會設定預設的category android.inte...
關於Intent filter的匹配規則
1.乙個activity可以有多個intent filter標籤,乙個intent只要能匹配任何一組intent filter就能成功啟動對應的activity 2.每個intent filter中可以有多個action,category,data 3.只有乙個intent同時匹配action類別 ...