Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android标志\活动\新任务被忽略_Android_Android Activity_Task - Fatal编程技术网

Android标志\活动\新任务被忽略

Android标志\活动\新任务被忽略,android,android-activity,task,Android,Android Activity,Task,是否存在忽略标志\活动\新\任务的情况?我从一个服务启动一个活动,目的是设置该标志,当主活动在后台时,我希望在新任务中看到新活动,因此当我关闭新活动时,我希望在后台再次看到应用程序。 它不会发生,并且显示了主要活动 为了进行测试,我尝试将主活动设置为singleInstance,在这种情况下它可以工作。但我不想将主活动设置为singleInstance 你知道这什么时候会发生吗 我应该补充一点,我在所有设备上都看到了这种行为,因此看起来这是它应该工作的方式,而不是特定于设备的问题。我修复了它,为

是否存在忽略标志\活动\新\任务的情况?我从一个服务启动一个活动,目的是设置该标志,当主活动在后台时,我希望在新任务中看到新活动,因此当我关闭新活动时,我希望在后台再次看到应用程序。 它不会发生,并且显示了主要活动

为了进行测试,我尝试将主活动设置为singleInstance,在这种情况下它可以工作。但我不想将主活动设置为singleInstance

你知道这什么时候会发生吗


我应该补充一点,我在所有设备上都看到了这种行为,因此看起来这是它应该工作的方式,而不是特定于设备的问题。

我修复了它,为第二个活动设置了不同的关联性。问题在于,关于FLAG_ACTIVITY_NEW_TASK标志的文档说明:

如果设置,此活动将成为此历史堆栈上新任务的开始

但这是一种误导,因为听起来框架总是会创建一个新任务,而当活动从服务启动时,情况并非如此

这是有关活动的taskaffinity属性的文档:

android:taskAffinity 活动与之有关联的任务。具有相同亲缘关系的活动在概念上属于相同的任务(从用户的角度来看属于相同的“应用程序”)。任务的关联性由其根活动的关联性决定。 亲缘关系决定了两件事—活动重新设置为父级的任务(请参见allowTaskReparenting属性)和使用标志\u activity\u NEW\u task标志启动活动时将容纳该活动的任务


因此,如果您从活动调用startActivity,则会启动一个新任务,但如果您从服务启动它,框架将活动附加到具有相同亲缘关系的任务(如果顶部活动不是单实例存在)

正在启动的活动是单实例或单任务的另一种情况。