Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android技術——Intent Filter

Android技術——Intent Filter

編輯:關於Android編程

1、要把一個Activity或者Service注冊為一個可以接受隱式intent的處理程序,需要在它的manifest節點中添加一個intent-filter標簽。

2、intent-filter標簽包含的屬性:

intent-filter包含action,category,data三大屬性。在隱式intent發布時,這些屬性將與這個intent進行匹配,匹配的結果將決定那個(些)處理程序將會被調用。

2.1 action

每個Intent Filter必須要包含至少一個action標簽。Action的android:name屬性指定需要處理的動作名稱。這個名稱應該是唯一的描述性字符串,推薦的做法是借鑒java包名約定來命名Action。

2.2 category(類別)

category使用android:name屬性來指定在什麼情況下為intent提供服務。每個Intent Filter可以有多個category標簽。既可以指定自己的category也可以使用Android提供的標准值。

這些標准值有:

LAUNCHER:監聽這個Intent Filter的Activity會出現在應用程序的啟動器中。

HOME:監聽這個Intent Filter的處理程序可以作為本地屏幕的可選項。

BROWSABLE:監聽這個Intent Filter的處理程序將可以處理一個來自浏覽器內部的動作。

ALTERNATIVE:為特定動作提供默認的操作。

SELECTED_ALTERNATIVE:

2.3 data

隱式intent用於匹配intent-filter的數據類型,這些數據類型有:

android:host、android:mimetype、android:path、android:port、android:scheme

例如我們在點擊一段下載鏈接時,到底是觸發浏覽器還是觸發迅雷下載軟件,這個就是由data標簽來實現的。

3、intent-filter的匹配過程

在使用隱式intent來啟動可能的處理程序時,這個intent將會和所有已經在Android操作系統注冊過的intent-filter有一個匹配過程。這個匹配過程將會找出符合要求的最合適的處理程序來處理這個隱式intent。

step1:隱式intent的action name必須與intent-filter的action name相同,否則匹配失敗

step2:隱式intent的category只能是intent-filter的子集,否則匹配失敗

step3:data裡面的數據必須逐項完全相同,否則匹配失敗

step4:如果有多個處理程序的intent-filter同時匹配這個隱式intent,

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved