Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.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
Java 从服务调用活动_Java_Android - Fatal编程技术网

Java 从服务调用活动

Java 从服务调用活动,java,android,Java,Android,我有一个意向标志活动新任务的情况 场景 我有一个启动活动的服务。这项服务由我的android wear应用程序使用。当我启动活动时,我按照android操作系统的要求指定标志activity NEW TASK FLAG(当您从服务调用活动时,有必要应用新任务标志) 假设我的应用程序已经在运行,我访问我的服务并获得GoodOlActivity启动,它将在任务堆栈的顶部启动(由于密切关系,不会创建新任务)。如果我继续启动此活动,它将继续在任务堆栈上制作副本 问题 假设我的应用程序不在历史堆栈中,我已

我有一个意向标志活动新任务的情况

场景

我有一个启动活动的服务。这项服务由我的android wear应用程序使用。当我启动活动时,我按照android操作系统的要求指定标志activity NEW TASK FLAG(当您从服务调用活动时,有必要应用新任务标志)

假设我的应用程序已经在运行,我访问我的服务并获得GoodOlActivity启动,它将在任务堆栈的顶部启动(由于密切关系,不会创建新任务)。如果我继续启动此活动,它将继续在任务堆栈上制作副本

问题 假设我的应用程序不在历史堆栈中,我已按home键并将其删除。在这种情况下,用户使用android wear应用程序并调用服务。该服务反过来调用GoodOlActivity。好的,很好。但是,GoodOlActivity永远不会启动,并且仍然是任务堆栈中唯一的活动

推定
我相信在第一种情况下,多个活动是在另一个活动的基础上启动的,因为新任务实际上并没有创建。原因是存在目标活动的任务

然而,在第二种情况下,创建了一个新任务,因此该任务的约束开始发挥作用。约束条件是,如果某个活动已经在任务堆栈中,则只会将该活动带到前台

目标
两种情况(一种是应用程序正在运行,另一种是应用程序被删除)应该是相同的。我应该能够多次运行GoodOl。Helppp?

您在哪个Android版本上运行此功能?从Android 10开始从服务开始活动是有问题的:
Intent intent = new Intent(this, GoodOlActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);