97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠見教育科技集團 >> 新聞動態(tài) >> Android資料 >> Android開發(fā)之Intent解析  
 
Android開發(fā)之Intent解析
分享到:

Intent到Intent過濾器的映射過程稱為“Intent解析”。Intent解析可以在所有組件中找到一個可與請求的Intent達成佳匹配的Intent過濾器。

Intent解析的匹配規(guī)則。

Android系統(tǒng)把所有應用程序包中的Intent過濾器集合在一起,形成一個完整的Intent過濾器列表。

在Intent與Intent過濾器進行匹配時,Android系統(tǒng)會將列表中所有Intent過濾器的“動作”和“類別”與Intent進行匹配,任何不匹配的Intent過濾器都將被過濾掉。沒有指定“動作”的Intent過濾器可以匹配任何的Intent,但沒有指定“類別”的Intent過濾器只能匹配沒有“類別”的Intent。

把Intent數據Uri的每個子部與Intent過濾器的<data>標簽中的屬性進行匹配,如果<data>標簽指定了協(xié)議、主機名、路徑名或MIME類型,那么這些屬性都要與Intent的Uri數據部分進行匹配,任何不匹配的Intent過濾器均被過濾掉。

如果Intent過濾器的匹配結果多于一個,則可以根據在<intent-filter>標簽中定義的優(yōu)先級標簽來對Intent過濾器進行排序,優(yōu)先級高的Intent過濾器將被選擇。

在此以6.2.1節(jié)中隱式啟動Activity的例子WebViewIntentDemo為基礎,在AndroidManifest.xml文件中注冊Intent過濾器,以及設置<intent-filter>節(jié)點屬性來捕獲指定的Intent。

在AndroidManifest.xml中添加如代碼清單6-19所示。

代碼清單6-19 AndroidManifest.xml中添加代碼


<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <data android:schema="http" />
    </intent-filter>

利用 <intent-filter> 可以把應用程序的操作注冊到系統(tǒng)中,當用戶調用 Intent 時,可以根據輸入的 ACTION 和 Uri參數來找到這個應用程序。例如,在上述代碼中,以 http 協(xié)議為例,打開 Google Map 可以用 URI: geo:38.899533,-77.036476。

此外,“協(xié)議”在 Android 里都可以隨便定義。例如,寫一個打開文件的關聯(lián) Intent,如 file:///sdcard/abc.txt。也可以用 type進行關聯(lián),其代碼如代碼清單6-20所示。

代碼清單6-20 用type進行關聯(lián)


<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <type android:value="test.item"/>
    </intent-filter>

然后,通過代碼清單6-21所示代碼就能定位到應用。

代碼清單6-21 用 type 定位到應用代碼


Intent it = new Intent(Intent.ACTION_VIEW);
    it.setType("test.item”);
    startActivity(it)

 更多相關文章

·Android開發(fā)之使用Intent隱式啟動Activity
·如何使用Intent顯式啟動Activity?
·Android開發(fā)中Intent屬性詳解
·Android Activity 四種啟動模式的區(qū)別
·Android Intent激活組件