由於應用程序可以爲應用程序的不同組件定義相同的意圖過濾器,因此意圖很可能會匹配同一應用程序的多個組件。如果是這種情況會發生什麼?會有任何錯誤嗎?一個意圖可以匹配同一應用程序的多個意向過濾器嗎?
0
A
回答
1
如果是這種情況會發生什麼?
假設你是指startActivity()
,那麼我希望從你的應用所有匹配的活動出現在選配,與設備上的任何其他活動相匹配的一起。
會有什麼錯誤嗎?
可能不是。但請注意,你所描述的是非常不尋常的。通常情況下,應用程序只需要一個活動來響應任何給定的Intent
結構。
0
最合適的意圖過濾器將抓住意圖。從doc:
隱式意圖需要不同的策略。在沒有指定目標的情況下,Android系統必須找到處理意圖的最佳組件(一個或多個組件)來執行請求的操作或一組廣播接收器來響應廣播通知。它通過將Intent對象的內容與意圖過濾器進行比較,以及與可能接收意圖的組件相關聯的結構。過濾器廣告組件的功能並劃定它可以處理的意圖。他們打開組件以接收廣告類型的隱含意圖的可能性。如果一個組件沒有任何意圖過濾器,它只能接收明確的意圖。具有過濾器的組件可以接收顯式和隱式意圖。
...
甲濾波器具有平行的動作,數據,和類別的意圖對象的字段的字段。在所有三個方面都針對過濾器測試了一個隱含的意圖。要傳遞給擁有過濾器的組件,它必須通過所有三個測試。如果即使其中一個失敗,Android系統也不會將其交付給組件 - 至少不會基於該過濾器。但是,由於組件可以有多個意向過濾器,因此不通過組件過濾器之一的意向可能會通過另一個過濾器。
總之:不會有錯誤。系統試圖找到意圖的最佳匹配,這可能偶爾會涉及用戶(在安裝新瀏覽器時考慮)。
相關問題
- 1. NFC意圖過濾器Android - 匹配應用程序/ vnd.wfa.wsc記錄
- 2. AndroidMainfest - 應該有一個意圖過濾器有多個動作?
- 3. Android意圖過濾器與多個應用程序相同的MIME類型
- 4. 從意圖過濾器開始應用程序後發送一個響應
- 5. 你可以在一個triggerAction中使用多個意圖嗎? [LUIS]
- 6. 意圖過濾器 - 打開新的應用程序,不嵌入一個
- 7. 添加一個意圖過濾器爲默認的郵件應用程序
- 8. 列出應用程序的活動和意向過濾器?
- 9. 同一個Adobe AIR應用程序可以運行多次嗎?
- 10. ACTION_SEND在同一個意向
- 11. 如何在同一個java程序上有多個意圖
- 12. Android - 你可以有多個應用程序發佈相同的意圖?
- 13. 如何「禁用」外部應用程序的意圖過濾器?
- 14. 打開應用程序通過意圖過濾器不工作
- 15. 意向過濾器Android與所有GPS應用程序
- 16. 以明確的意圖使用意圖過濾器
- 17. 檢測應用程序接收的意圖過濾器
- 18. 如何獲得Android應用程序的意圖過濾器
- 19. 註冊應用程序的位置意圖過濾器
- 20. 一個Java應用程序可以在同一臺Linux機器上監視另一個Java應用程序嗎?
- 21. 您可以根據查詢創建意圖過濾器嗎?
- 22. 意向過濾器只匹配域(沒有路徑)
- 23. 如何爲同一活動設置兩個不同的意圖過濾器?
- 24. 是否可以通過隱式意圖控制另一個應用程序的方向?
- 25. Android:我可以使用第三方應用程序的這個意圖嗎?
- 26. 一個移動應用程序可以支持多個不同的MDM嗎?
- 27. 意圖和意圖過濾器
- 28. Android意圖和意圖過濾器
- 29. 可以使用顯式意圖從另一個應用程序啓動服務?
- 30. 獲取意圖過濾器爲應用程序工作