因爲您的應用可以定義在啓動器中顯示的多個活動。所有具有此類意圖過濾器的活動:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
將出現在啓動器中,每個都有自己的標籤。事實上,如果您沒有在您的活動中定義標籤,則從應用程序繼承的基本上是商品。
而且,每一次活動都有自己的android:icon
(再次,從<application>
繼承商品)。有了這個屬性,您的兩個啓動器條目可以不僅具有不同的標籤,而且具有不同的圖標。
在更一般的筆記,甚至是「無主」的活動可以處理某些類型的事件,並在這些情況下,它們的標籤和圖標是相關的。例如,如果您的某個活動(與哪個活動無關)處理ACTION_SEND
意圖(與大多數共享應用程序一樣 - 請參閱Facebook,Twitter,...),則只要用戶在任何中按下「共享」按鈕應用程序,可以完成某項活動的應用程序列表顯示給用戶(在這種情況下,這些應用程序可能是Facebook,Twitter和您的應用程序)。該列表將包含一個圖標和一個標籤(即Facebook的)。您的條目的顯示將由您接收<activity>
定義的android:icon
和android:label
屬性來決定,且僅當它沒有定義他們,他們會從你的<application>
服用。
這允許您在不修改應用程序名稱的情況下輸入諸如「通過MyApp共享」之類的條目。或者,如果您的應用程序還具有處理ACTION_VIEW
的活動,則該活動可能具有標籤「在MyApp中查看」。
挖掘更深,<intent-filter>
元素可以有自己的標籤和圖標。基本上,Android選擇圖標和標籤來顯示,如下所示:
- 如果
<intent-filter>
有,請選擇停止。
- 如果
<activity>
有,請選擇,停止。
- 挑選
<application>
中的一個。
這是有幫助的有兩種情況:
- 你不想改變你的活動的標籤/圖標:也許你想使用那些在其他地方,如標題欄(和你不不想讓你的標題欄說「通過MyApp分享」)
- 你有多個intent過濾器的活動。例如,您可以在同一活動中處理
ACTION_SEND
和ACTION_VIEW
意圖。在這種情況下,您將爲該活動設置兩個意向過濾器,標籤爲「通過MyApp共享」和「在MyApp中查看」。
我希望我已經說清楚了,這些都是很基本的東西,可以是相當困難的,首先掌握,但在建築應用提供了極大的靈活性,並將它們與Android系統的集成和/或其他應用程序。
另外一點需要注意的是,你可以很容易地有沒有在啓動任何項目(由不具有上述意圖過濾器的任何活動)的應用程序。這些都是完全有效的應用程序,創建僅限付費應用程序(例如小部件)時,這是很好的做法。