簡體   English   中英

android - <activity-alias> 清單標簽

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM