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" />
相关文章
- 谁知道怎么让一个android程序在进程中只启动一个?
- 让你自己编写的Android的Launcher成为系统中第一个启动应用
- Android应用启动另外一个apk应用的方法
- 让你自己写的Android的Launcher成为系统中第一个启动的,也是唯一的Launcher.
- android4.2系统修改启动指定的launcher后,打开apk点home键无反应???
- Android让一个apk作为Launcher启动
- Android实战技巧之二十八:启动另一个App/apk中的Activity
- 让你自己写的Android的Launcher成为系统中第一个启动的,也是唯一的Launcher
- android4.2系统修改启动指定的launcher后,打开apk点home键无反应???
- (转)从android一个apk中启动第三方apk应用