在我的清单文件中,我将应用程序名称作为MyApp,将起始活动的名称作为主菜单.
<application android:theme="@style/theme" android:icon="@drawable/myicon" android:label="@string/app_name">
<activity android:name=".MainMenu"
android:label="@string/mainmenu_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
当我在android的默认菜单屏幕中看到应用程序图标时,显示的名称是主菜单.为什么MyApp不是应用程序显示的名称?
Fel*_*lix 10
因为您的应用可以定义在启动器中显示的多个活动.具有此类意图过滤器的所有活动:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
将出现在启动器中,每个都有自己的标签.事实上,如果你没有在你的活动上定义一个标签,它从应用程序继承的基本上是一种商品.
此外,每个活动都有自己的android:icon(同样,它继承自<application>商品).使用此属性,您的两个启动器条目不仅可以具有不同的标签,还可以具有不同的图标.
更一般地说,即使是"非主要"活动也可以处理某些类型的事件,在这些情况下,它们的标签和图标是相关的.例如,如果您的某个活动(无关紧要)处理ACTION_SEND意图(如大多数共享应用程序那样 - 请参阅Facebook,Twitter,...),那么每当用户在任何应用程序中按下"共享"按钮时,可以完成向用户显示某些活动的应用程序列表(在这种情况下,这些应用程序可以是Facebook,Twitter和您的应用程序).此列表将包含图标和标签(即
Facebook的).您的条目的显示将由您的接收定义的android:icon和android:label属性决定<activity>,并且只有在它没有定义它们时,它们才会从您的接收中获取<application>.
这允许您在不修改应用程序名称的情况下输入"通过MyApp共享"等条目.或者,如果您的应用程序还有一个处理的活动ACTION_VIEW,那么该活动可能具有标签"在MyApp中查看".
更深入地挖掘<intent-filter>元素可以拥有自己的标签和图标.基本上,Android选择图标和标签来显示如下:
<intent-filter>有,请选择,停止.<activity>有,请选择,停止.<application>.这在两种情况下很有用:
ACTION_SEND和ACTION_VIEW意图.在这种情况下,您将为该活动设置两个意图过滤器,其标签为"通过MyApp共享"和"在MyApp中查看".我希望我已经明确表示,这些是非常基本的事情,起初可能很难掌握,但这为构建应用程序并将它们与Android系统和/或其他应用程序集成提供了极大的灵活性.
另外需要注意的是,您可以轻松地拥有一个在启动器中没有任何条目的应用程序(通过上面提到的intent过滤器没有任何活动).这些是完全有效的应用程序,在创建仅限服务的应用程序(例如小部件)时,这是一种很好的做法.
| 归档时间: |
|
| 查看次数: |
2650 次 |
| 最近记录: |