android.intent.action.MAIN与android.intent.category.LAUNCHER

时间:2022-02-02 21:21:53

android.intent.action.MAIN
决定应用程序最先启动的Activity

android.intent.category.LAUNCHER
决定应用程序是否显示在程序列表里

在网上看到文章

android.intent.action.MAIN 与 android.intent.category.LAUNCHER

一直知道加上这2个东西就表示程序启动时最先启动的Activity上网查了下这么说的:

android.intent.action.MAIN决定应用程序最先启动的

activity android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里

如果只有一个activity的应用程序只声明了      android.intent.action.MAIN ,没有声android.intent.category.LAUNCHER,eclipse运行是将报错:

android.intent.action.MAIN与android.intent.category.LAUNCHER

但是在桌面中图标中找不到

如果一个应用没有LAUNCHER则该apk仍能安装到设备上,但是在桌面中图标中看不到。如果给那个Activity 设定了LAUNCHER,且同时设定了Main,则这个Activity就可出现在程序图标中;如果没有Main,则不知启动哪个Activity,故也不会有图标出现。

所以啊~~main和launcher必须一起出现,

      如果存在多个activity都声明了android.intent.action.MAIN与android.intent.category.LAUNCHER会出现什么情况呢?------------------将会有多个图标显示在桌面上。
我又闲的试了试给2个Activity都加入了main和launcher

发现你的哪个Activity在前面哪个就先启动,而在程序列表里有2个程序图标分别运行,显示的结果可想而知,分别是那两个Activity,就是两个图标。

代码如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xunfang.demo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:icon="@android:drawable/stat_notify_call_mute"
            android:name=".Second"
            android:label="我是副界面" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
         <activity
            android:icon="@android:drawable/ic_input_add"
            android:name=".MainActivity"
            android:label="我是主界面" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>