Android 如何从另一个活动中完成一个活动

Android 如何从另一个活动中完成一个活动,android,android-activity,task,Android,Android Activity,Task,如果活动A与任务T1相关,活动B与任务T2相关,我如何从活动B完成活动A 我需要它,因为我的应用程序可以从快捷方式或通过通知启动。我不确定什么是最好的方法,但有一种方法可以是将活动A传递给单例,然后从B获取它并对其执行finish() 虽然其他方法可能有效,但对我来说最直接的方法是向其他活动发送一个意图,告诉它自己完成。该活动在收到该意图后调用finish()。另一种选择可能是从通知处理程序调用带有clear top标志的活动B,例如 Intent intent = new Intent(con

如果活动A与任务T1相关,活动B与任务T2相关,我如何从活动B完成活动A


我需要它,因为我的应用程序可以从快捷方式或通过通知启动。

我不确定什么是最好的方法,但有一种方法可以是将活动A传递给单例,然后从B获取它并对其执行finish()

虽然其他方法可能有效,但对我来说最直接的方法是向其他活动发送一个意图,告诉它自己完成。该活动在收到该意图后调用finish()。

另一种选择可能是从通知处理程序调用带有clear top标志的活动B,例如

Intent intent = new Intent(context, HomeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);       
context.startActivity(intent);


如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是关闭其上的所有其他活动,并将此意图传递给(现在位于顶部)旧的活动是一种新的意图。

我需要同样的信息,并根据雅尔在这里所说的内容来玩弄,我想到了这个

 Intent intent = new Intent(MainActivity.this,HighScoresActivity.class);
                        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
                        startActivity(intent);

更改活动以符合您的需要,但标记“活动”将从堆栈中删除其他活动。

这两个活动是否属于同一应用程序?是。活动a是正常启动的,活动B是在应用程序处于后台时通过通知启动的。我会说,使用a,我没有看太多,但它可能对你有用。如果我在做,我会选择这样的方式。在应用程序中保留活动引用是不合适的,因为操作系统不会在活动有引用时终止该活动。这是不同的。这比我的建议更有效,但只有当从目的开始的活动与正在运行的活动相同而不是新的活动时,这才有效。我不知道当你有意图地调用它时,它是如何工作的,所以不做测试就无法回答。希望这是有意义的…它只清除该任务中的所有活动,不影响其他任务中的活动