我有一个包含两个活动
的应用程序 <intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
清单中的。我这样做是为了在app抽屉中有2个单独的条目。它适用于app抽屉。
我的问题出现在安装过程中。安装只有一个MAIN / LAUNCHER活动的应用程序后,最后一页有一个打开按钮,将启动刚安装的应用程序。使用我的应用程序,此打开按钮显示为灰色。我认为这是因为如果按下打开按钮,它不知道我希望它启动哪两项活动。我可以在清单(或其他地方)中设置任何内容来指定在安装过程结束时我希望打开按钮启动哪个活动?我想我必须要设置一些东西,因为当我通过adb用eclipse安装应用程序时,它启动了两个活动中的一个,幸运的是它实际上是我希望它启动的那个。
答案 0 :(得分:7)
这个问题:
帮助我按照我想要的方式工作。关键是增加:
<activity-alias android:name="com.android.internal.app.ResolverActivity"
android:targetActivity=".Main" android:exported="true">
</activity-alias>
到清单并更改“.Main”以引用您希望在安装结束时使用打开按钮启动的活动。
请注意,必须在所指的活动标记之后(在xml中)声明activity-alias标记。
答案 1 :(得分:1)
Android文档强烈建议,如果您要从主屏幕启动多个活动,则每个活动都在其自己的任务中启动。有关详细信息,请查看this article。
执行此操作时,每个任务都将具有单独的taskAffinity值。我相信,设置为与应用程序包相同的亲和力的任务是安装程序选择要启动的任务。
答案 2 :(得分:0)
我建议您进行一项活动,该活动会读取偏好并决定继续当前活动或开设另一项活动。
如果您不想开始新的活动,请尝试膨胀适当的片段。