【问题标题】:Application with 2 launcher activities具有 2 个启动器活动的应用程序
【发布时间】:2012-01-11 22:41:59
【问题描述】:

我有一个包含两个活动的应用程序

        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>

在清单中。我这样做是为了在应用程序抽屉中有 2 个单独的条目。就应用程序抽屉而言,它可以正常运行。

我的问题是在安装过程中提出的。安装只有一个 MAIN/LAUNCHER 活动的应用程序后,最后一页有一个打开按钮,将启动刚刚安装的应用程序。在我的应用中,这个打开按钮是灰色的。我认为这是因为它不知道如果按下打开按钮,我希望它启动两个活动中的哪一个。我可以在清单(或其他地方)中设置什么来指定我希望打开按钮在安装过程结束时启动的活动吗?我在想一定有一些我可以设置的东西,因为当我通过 adb 和 eclipse 安装应用程序时,它会启动两个活动之一,幸运的是它实际上是我希望它启动的一个。

【问题讨论】:

    标签: android android-activity installation manifest


    【解决方案1】:

    这个问题:

    After downloading an application with two Launcher components from the Marketplace, clicking "Open" will cause a crash

    帮助我让它按我想要的方式工作。关键是添加:

        <activity-alias android:name="com.android.internal.app.ResolverActivity"
                android:targetActivity=".Main" android:exported="true">
        </activity-alias>
    

    到清单并更改“.Main”以引用您希望在安装结束时使用打开按钮开始的活动。

    请注意,activity-alias 标记必须在您所指的活动标记之后声明(在 xml 中)。

    【讨论】:

      【解决方案2】:

      Android 文档强烈建议,如果您要从主屏幕启动多个活动,则每个活动都在其自己的任务中启动。请查看this article 了解更多信息。

      这样做时,每个任务都会有一个单独的 taskAffinity 值。我相信设置为与应用程序包相同的亲和性的任务是安装程序将选择启动的任务。

      【讨论】:

      • 感谢您的链接。我尝试将两个启动器活动设置为不同的任务关联,并将应用程序元素上的任务关联设置为与我希望在安装后启动的活动相同。但还是不行,打开按钮是灰色的。
      【解决方案3】:

      我建议您有 1 个活动来读取偏好并决定继续当前活动或打开另一个活动。

      如果您不想开始新的活动,请尝试为适当的片段充气。

      【讨论】:

      • 是的,您可以,它们只会在主屏幕上显示为单独的图标。
      • 我希望应用抽屉中有 2 个单独的图标。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      • 2021-03-13
      相关资源
      最近更新 更多