android.intent.action.MAIN 和 android.intent.category.LAUNCHER

        最近在更换手机主题的时候发现. 手机主题其实也是一个应用, 但为什么桌面上找不到图标呢?
然后查了一下资料, 关键是AndroidMainFest.xml配置文件, 如下:

<activity
    android:name=".MainActivity"
    android:launchMode="singleTask"
    android:screenOrientation="portrait"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"
    >
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    intent-filter>
activity>

intent-filter 标签中这两个值:

  • android.intent.action.MAIN
  • android.intent.category.LAUNCHER
具体作用如下:
  • MAIN指定了应用入口地址.
  • LAUNCHER是应用在手机桌面上的图标.
  • 如果只设置MAIN, 没没有设置LAUNCHER, 应用可以被安装到手机, 但是在桌面看不到APP的图标, 所以就无法启动APP.
  • 如果只设置了LAUNCHER, 而没有设置MAIN, 系统不知道应用从哪个Activity启动, 所以也就不会在桌面显示图标.
  • 如果给多个Activity设置了MAIN和LAUNCHER, 桌面会显示多个APP图标, 点击图标会分别进入设置的Activity中.
PS:

貌似<字体管家>中的字体也是同样道理

你可能感兴趣的:(Android,四大组件,Activity)