《第一行代码》中这么解释的:
<action android:name=
"android.intent.action.MAIN" /> 和 <category android:name="android.intent.category.
LAUNCHER" /> 表示 HelloWorldActivity是这个项目的主活动,在手机上点击应用图标,首先启动
的就是这个活动。
刚才看了一下sundy的视频《LLY110426_Android应用程序启动》,里面讲到luncher这个activity通过获取应用程序信息来加载应用程序,显示给用户,其中就是通过一个应用程序中的AndroidManifest.xml中的声明来识别的。
其中android.intent.action.MAIN 与 android.intent.category.LAUNCHER 决定应用程序在luncher中的显示方式;
两者的作用如下:
android.intent.action.MAIN决定应用程序最先启动的Activity
android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里
所以:
如果只有一个activity的应用程序只声明了 android.intent.action.MAIN ,没有声明 android.intent.category.LAUNCHER,eclipse运行是将报错:
如果存在多个activity都声明了android.intent.action.MAIN与android.intent.category.LAUNCHER会出现什么情况呢?——————将会有多个图标显示在桌面上。
验证如下,新建工程,其中AndroidManifest.xml如下
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android4" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.android4.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.android4.MainActivity_Copy" android:icon="@android:drawable/btn_star" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
桌面显示结果为:
经过各种实验:
两个属性都是成对出现的,必须出现在一个activity标签里面。否则会报错!!!