2011-08-03 57 views
3

我在启动新活动时遇到FLAG_ACTIVITY_NEW_TASK标志存在问题。FLAG_ACTIVITY_NEW_TASK没有像预期的那样运行

目前我有2个应用程序:应用程序A只包含一个服务可同时启动应用B的主要活动(应用程序B有1个活动是其主要活动)

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

现在,推出这一意图的时候,我所盼望的,因为在开发者指南中的文档发生情况如下:

FLAG_ACTIVITY_NEW_TASK

当使用这个标志,如果一个任务已经 运行对于您现在开始的活动,则不会启动新活动 ;相反,当前的任务只会带来 与上次的状态后,屏幕的正面。

但是,由于某种原因,应用B的另一主要活动是创建和推出,在顶部已经存在一个,所以我在应用程序B任务中有两个主要活动。

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

谢谢!

回答

0

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

查看Launch mode了解更多信息。

0

如果活动已经打开onNewIntent,则会调用override方法。根据您的要求实施该方法。我的要求是仅保留一项活动任务。所以我开始新的任务并完成旧的任务。在活动中执行此操作B

@Override 
protected void onNewIntent(Intent intent) { 
    startActivity(intent); 
    finish(); 
}; 
相关问题