gpt4 book ai didi

Android:删除后台 Activity

转载 作者:行者123 更新时间:2023-11-30 02:59:48 26 4
gpt4 key购买 nike

我有 4 个 Activity ,分别是 A->B->C->D。在每个 A、B、C Activity 中,用户都需要输入数据,如果用户数据正确,所有数据都将发送到 C Activity 中的服务器他将继续进行 D Activity ,并将所有 Activity A、B、C 从堆栈中移除。如果数据正确,我需要让用户重新输入数据,即在后退时,它必须移动 C->B->A .我的问题是当用户输入 D Activity 时如何删除 A、B、C Activity 。

最佳答案

使用 FLAG_ACTIVITY_CLEAR_TOP 这将解决您的问题

来自Android documentation :

If set, and the activity being launched is already running in thecurrent task, then instead of launching a new instance of thatactivity, all of the other activities on top of it will be closed andthis Intent will be delivered to the (now on top) old activity as anew Intent.

For example, consider a task consisting of the activities: A, B, C, D.If D calls startActivity() with an Intent that resolves to thecomponent of activity B, then C and D will be finished and B receivethe given Intent, resulting in the stack now being: A, B.

像这样使用

Intent intent = new Intent(getApplicationContext(),
yourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(intent);

另外,看看这个问题:

Activity with Flag FLAG_ACTIVITY_CLEAR_TOP (android)

编辑:我以为你想从 D 移动到你的家庭 Activity 并想从堆栈中删除所有 Activity

你的堆栈就像 homeactivity , A , B , C , D所以我给了你这个解决方案,因为这将删除你家庭 Activity 之上堆栈中的所有 Activity 。

如果你想在转到 D 时清除堆栈,你可以使用 FLAG_ACTIVITY_TASK_ON_HOMEFLAG_ACTIVITY_CLEAR_TASK

但这两个都适用于 api 级别 11。

关于Android:删除后台 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22708292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com