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();
};