删除除家庭活动以外的所有先前活动

问题描述 投票:0回答:3

如何删除除HomeActivity之外的所有活动。

例如:A(家庭活动)-> B-> C-> D现在再次调用B活动,删除C&D活动。我正在通过意图将数据从D活动发送到B活动。我有一个下一个按钮,如果我单击下一个按钮,则此过程将完成。如果我反压,那么我的过程将是D-> C-> B-> A

android android-intent activity-finish
3个回答
0
投票

然后您需要在C&D活动中都创建static activity变量。

就这样

 //create static variable
 public static CActivity cactivity;

然后在onCreateActivity中初始化此变量。

  //initialization 
  cactivity=this;

在所需的位置填写activity

// use this where you want to finish activity 
CActivity.cactivity.finish();

请确保Activity必须在后台运行,否则应用程序将崩溃。


0
投票

我建议的解决方案不是那么平滑,但不要用startActivityForResult代替所有启动活动,而是搜索结果代码,以及从活动返回的结果代码(供您处理)当然),然后以结果代码的方式调用完成所有活动,直到您到达家庭活动为止。


0
投票

从D-> B出发时,请使用intent.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP);它将关闭所有其他活动,并将其作为新的Intent交付给(现在位于顶部的)旧活动。

FLAG_ACTIVITY_CLEAR_TOP

© www.soinside.com 2019 - 2024. All rights reserved.