是否仍有更改当前活动的方法';android中的s意向标志?比如在堆栈历史记录中是否可用

是否仍有更改当前活动的方法';android中的s意向标志?比如在堆栈历史记录中是否可用,android,android-intent,android-activity,Android,Android Intent,Android Activity,假设我有4个活动(A、B、C、D) 应用程序开始->A->B->C->D 我有一种情况,我需要删除C,如果有什么东西使C的必要性无效 (某些内容无效:“例如”,C显示产品的详细信息,如果用户用C购买该产品,它将显示D(您已经购买了!),当用户点击“后退”按钮时,用户不应该看到产品页面) 因此,理想的情况是: AppStart->A->B->C->Something使C的必要性失效并启动D->C将有新获得的标志\u ACTIVITY\u NO\u HISTORY标志并启动D 因此,在启动D之后,C

假设我有4个活动(A、B、C、D)

应用程序开始->A->B->C->D

我有一种情况,我需要删除C,如果有什么东西使C的必要性无效

(某些内容无效:“例如”,C显示产品的详细信息,如果用户用C购买该产品,它将显示D(您已经购买了!),当用户点击“后退”按钮时,用户不应该看到产品页面)

因此,理想的情况是:

AppStart->A->B->C->Something使C的必要性失效并启动D->C将有新获得的标志\u ACTIVITY\u NO\u HISTORY标志并启动D

因此,在启动D之后,C将被删除:

堆栈将是A->B->D,每当用户点击“返回”,用户将返回B而不是C

总而言之,我需要启动一个不带标志\u Activity\u NO\u HISTORY标志的活动,但根据该活动中的操作使用该标志进行更新


这可能吗?

在已启动的活动中调用finish()会将其从堆栈中删除。在开始另一项活动时(在StartActivity之后)或甚至在正在考虑的活动处于后台时使用它。不过,在后一种情况下,请注意是否存在泄漏,为什么不在启动D时在C上使用“finish()”?在调用活动D时使用“clear top”c@Waza_Be在对当前活动调用finish()之后,我可以安全地从当前活动启动另一个活动吗?@vsk这不会同时删除B吗?是的,您可以非常简单地执行此操作。。当你接受阿列克谢的回答时,我想这对你是有效的;-)