2013-04-07 13 views

回答

1

如果是這種情況會發生什麼?

假設你是指startActivity(),那麼我希望從你的應用所有匹配的活動出現在選配,與設備上的任何其他活動相匹配的一起。

會有什麼錯誤嗎?

可能不是。但請注意,你所描述的是非常不尋常的。通常情況下,應用程序只需要一個活動來響應任何給定的Intent結構。

0

最合適的意圖過濾器將抓住意圖。從doc

隱式意圖需要不同的策略。在沒有指定目標的情況下,Android系統必須找到處理意圖的最佳組件(一個或多個組件)來執行請求的操作或一組廣播接收器來響應廣播通知。它通過將Intent對象的內容與意圖過濾器進行比較,以及與可能接收意圖的組件相關聯的結構。過濾器廣告組件的功能並劃定它可以處理的意圖。他們打開組件以接收廣告類型的隱含意圖的可能性。如果一個組件沒有任何意圖過濾器,它只能接收明確的意圖。具有過濾器的組件可以接收顯式和隱式意圖。

...

甲濾波器具有平行的動作,數據,和類別的意圖對象的字段的字段。在所有三個方面都針對過濾器測試了一個隱含的意圖。要傳遞給擁有過濾器的組件,它必須通過所有三個測試。如果即使其中一個失敗,Android系統也不會將其交付給組件 - 至少不會基於該過濾器。但是,由於組件可以有多個意向過濾器,因此不通過組件過濾器之一的意向可能會通過另一個過濾器。

總之:不會有錯誤。系統試圖找到意圖的最佳匹配,這可能偶爾會涉及用戶(在安裝新瀏覽器時考慮)。

相關問題