在Android中,< activity-alias>的用途是什麼?從documentation看來,它似乎只是現有的<活動的另一個名稱,意圖過濾器會覆蓋目標活動的過濾器(目前爲止我的理解)。android - <activity-alias>清單標記
它的實際用途是什麼?
調用者是否可以向目標和別名發送意圖?
在Android中,< activity-alias>的用途是什麼?從documentation看來,它似乎只是現有的<活動的另一個名稱,意圖過濾器會覆蓋目標活動的過濾器(目前爲止我的理解)。android - <activity-alias>清單標記
它的實際用途是什麼?
調用者是否可以向目標和別名發送意圖?
它似乎是現有的< activity>帶有意圖過濾器的另一個名稱,它覆蓋了目標活動的過濾器(目前爲止我的理解)。
我把它定義爲「提供額外的過濾器」,比重寫更重要。
它的實際用途是什麼?
您可以禁用組件,如<activity-alias>
。你不能禁用<intent-filter>
元素(儘管這會非常方便)。
因此,如果你有,你想成爲所有可用的時間的活動,但只有的一些時間提供了一個特定的過濾器(或過濾器),<activity-alias>
是給你的。
一個現代化的例子來自新的存儲訪問框架。過去,爲了使文檔可供第三方應用程序使用,您可以實施ACTION_GET_CONTENT
活動,並使用<intent-filter>
廣告相關的MIME類型(並且可能爲您的供應商提供ContentProvider
路徑)。但是,如果您在Android 4.4+上採用存儲訪問框架,則不希望也有有ACTION_GET_CONTENT
活動可用 - 最終結果是您的所有內容都將顯示兩次。因此,在Android 4.4+設備上,您需要禁用整個活動(如果您不需要其他任何設備),或者將ACTION_GET_CONTENT
<intent-filter>
移至<activity-alias>
,以便您可以單獨禁用它。這在the documentation中有更詳細的介紹。
TL; DR:我懷疑很多開發人員使用<activity-alias>
,儘管它有它的用例(例如,在您的問題的評論中引用的啓動程序)。
調用者是否可以向目標和別名發送意圖?
嗯,如果是,你的意思是「我可以使用startActivity()
開始在上述活動或別名嗎?」,那麼,是的。
感謝您的回答! :) – Jake
http://blog.danlew.net/2014/01/16/preserve-your-launchers-use-activity-alias/ –