Android 标记\u活动\u新任务未按预期运行

Android 标记\u活动\u新任务未按预期运行,android,android-manifest,Android,Android Manifest,启动新活动时,我遇到了一个有关标记活动新任务的问题 目前我有两个应用程序:应用程序A只包含一个服务,该服务可以启动应用程序B的主活动(应用程序B有一个活动是其主活动) 我的问题是:当应用程序B处于活动状态(其主要活动对用户可见,并且是其任务中的唯一活动)时,服务获取应用程序B包名称的启动意图(来自PackageManager),并向其添加标志活动新任务标志(它必须这样做,因为它不是活动上下文,而是服务上下文) 现在,在启动此意图时,我预计不会发生任何事情,因为《开发人员指南》中的文档如下所示:

启动新活动时,我遇到了一个有关
标记活动新任务的问题

目前我有两个应用程序:应用程序A只包含一个服务,该服务可以启动应用程序B的主活动(应用程序B有一个活动是其主活动)

我的问题是:当应用程序B处于活动状态(其主要活动对用户可见,并且是其任务中的唯一活动)时,服务获取应用程序B包名称的启动意图(来自
PackageManager
),并向其添加
标志活动新任务标志(它必须这样做,因为它不是活动上下文,而是服务上下文)

现在,在启动此意图时,我预计不会发生任何事情,因为《开发人员指南》中的文档如下所示:

标记活动新任务

使用此标志时,如果任务已被删除 正在为您现在开始的活动运行,然后是一个新的活动 将不会启动;相反,当前任务将被简单地引入 显示在屏幕的前面,显示最后一次出现的状态

但是,由于某种原因,应用程序B的另一个主要活动被创建并启动,在已经存在的活动之上,因此我在应用程序B任务中有两个主要活动

主活动在清单中没有设置特殊属性,因此其
launchMode
属性自动设置为标准


谢谢!

您是否尝试过将应用程序B中的主活动的启动模式更改为应用程序B的AndroidManifest.xml中的SingleTask或SingleInstance


有关详细信息,请参阅。

如果活动已打开,则将调用Wintent override方法。根据您的要求实现该方法。我的要求是只维护一个活动任务。因此,我正在启动新任务并完成旧任务。请在活动B中实现该方法

 @Override
 protected void onNewIntent(Intent intent) {
    startActivity(intent);
    finish();
 };