Android让一个apk作为Launcher启动

时间:2021-12-08 16:41:31
android启动apk时是依据apk中Activity的intent-filter属性,在新建一个项目工程的时候,Eclipse就为这个工程的主Activity默认配置了intent-filter属性,如下:
<activity android:name="MainActivity">
     <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
所以,每次运行工程的时候,模拟器就直接启动了这个apk。我尝试了一下,如果将
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
这两个属性任意去掉一个或是两个都去掉的话,运行工程之后,模拟器是不会启动apk的,但是在应用程序管理里面,是能看到这个apk是被安装了的,但是在launcher上
却看不到该apk的图标。


现在为这个Activity添加<category android:name="android.intent.category.DEFAULT" />属性
<activity android:name="MainActivity">
     <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
          <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
运行apk之后,在launcher上和应用程序管理里面能看到这个apk,当长按home键之后,可切换到这个apk来启动(开机之后,也会弹出一个对话框让我们选择用哪一个apk作为launcher)
由此,可以得出,要想apk作为launcher启动的话,需要为其主Activity添加属性<category android:name="android.intent.category.DEFAULT" />