我想从任务堆栈中完全删除一个活动,但是finish()似乎只能最小化任务。 如果我单击手机上浏览所有打开的任务的按钮,则该按钮仍然存在。 我需要将其擦去以摆脱它。
我实际上如何彻底摆脱活动? 目前,我有启动Activity_B的Activity_A。 当我按回去时,Activity_B最小化,Activity_A出现在最前面。 如何使它简单地摆脱Activity_B并返回到Activity_A?
编辑:
我找到了原因,Activity_B将Activity_A作为父回调Activity。 如果您在A呼叫B时没有启动新活动,那么它会正常工作(杀死B会杀死整个事情,A不会浮出水面)。
您能在stackoverflow中检查类似的问题吗?
是的,我看过这两个。 他们提到了我尝试过的两种主要方法。 1)android:noHistory =" true"实际上不起作用。 2)启动另一个活动并清除任务。 这确实可行,但似乎有点不客气。 必须有一种方法可以简单地结束此活动,而不必启动第二个活动来结束此活动。
检查一下。 答案,它可以帮助我解决同样的问题。
我最后要做的是,当Activity_A调用Activity_B时,它不会创建新的Activity,而只是替换它。 因此,当我摆脱B时(例如,将其擦掉),它就不会回到A。
否则,B将回调A,然后在您摆脱B时基本上将A带回到前面。
你有没有尝试过:
intent = new Intent(view.getContext(),MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
检查这是您需要的吗?
android:noHistory="true">
我已经在类似的问题中看到了,但这是行不通的。 当我按下"返回"键时,"活动"将移至堆栈的背面,但不会消失...
不是一个好方法,但还是尝试一下。在您的背面按下内部,写Intent intent = new Intent(this,ActivityA.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent);
:D在对评论我的问题的人的评论中,我提到这样做确实有效……似乎很不客气。 Android活动没有结束自己的原生方式吗? 我想如果是这样,我将不得不使用hacky方式。