2011-02-03 86 views
2

我正在閱讀android的intent過濾器,並且有幾個問題需要問。Android上的意圖過濾器

  1. 它們是否與同一應用程序或所有應用程序中的過濾器匹配?

  2. 在數據標籤內的計劃,我已經看過了android sdk網站上的文檔,但不知道它是什麼意思。它說方案://主機:端口/路徑pathPrefixpathPattern

什麼是主機端口和路徑....什麼路徑涉及到?

回答

1

1)取決於請求的意圖類型。見隱VS明確意圖的文檔的「意圖解決辦法」部分:

http://developer.android.com/guide/topics/intents/intents-filters.html

如果命名組件完全相同,那麼你知道哪些活動將啓動。其他意圖命名一個通用行爲,並可以通過多個活動進行匹配。用戶得到一個菜單,詢問他們想要使用哪個應用程序來正常完成操作。例如,從Marketplace中下載Firefox應用程序,然後單擊電子郵件中的鏈接,您會收到一條提示,詢問您是要使用瀏覽器還是Firefox來打開URL。

2)這是爲了攔截自定義URL方案或覆蓋HTTP請求。聽起來不像你想做的事情,除非你需要使用它,否則你可以放心地忽略它。如果你想了解它的詳細信息有一些很好的答案已經是一個問題:

Launch custom android application from android browser

+0

如果我想將自定義對象或字符串發送到其他活動,我們在方案中放入了什麼。 – LittleFunny 2011-02-04 00:50:39

1

1)看@mikerowehl回答

2)數據通過統一資源Indentifiers引用(URI的)。在Android中,方案可能是http,tel,file,content(不知道其他人),並且通過在過濾器中指定某個方案,您說組件可以處理以這種方式提供的數據。

host + port = authority。如果數據的方案是http,主機當然會像stackoverflow.com一樣,端口可能沒有指定(如果你正在訪問代理,它可能是8080)。如果是內容提供者,則按照約定「內容提供者的完全合格類名稱(小寫)」,不帶端口。

這應該是一般的想法。這個領域的文檔相當分散,但您應該能夠在需要時找到有關特定任務的信息(例如打開電子郵件附件)。