[英]Is selectively enabling an activity-alias in the manifest with android:enabled=“@bool/tablet” or “@bool/phone” supported?
[英]android - <activity-alias> manifest tag
在Android中,<activity-alias>的目的是什么? 從文檔中看來,它只是現有<activity>的另一個名稱,其intent intent會覆蓋目標活動的過濾器(到目前為止我的理解)。
它的實際用途是什么?
調用者是否可以向目標和別名發送意圖?
它似乎只是現有的<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>
,這樣您就可以禁用它分別。 文檔中對此進行了更詳細的介紹 。
TL; DR:我懷疑許多開發人員使用<activity-alias>
,盡管它有其用例(例如,在您的問題的評論中引用的啟動器)。
調用者是否可以向目標和別名發送意圖?
嗯,如果那樣,你的意思是“我可以使用startActivity()
來啟動活動或別名嗎?”,然后,是的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.