gpt4 book ai didi

java - 如何从另一个关闭所有正在运行的 Activity ?

转载 作者:行者123 更新时间:2023-11-29 21:43:18 25 4
gpt4 key购买 nike

我有一些 Activity ,我在不关闭的情况下一个接一个地执行 (1->2->3->4)。我想关闭 4 中的 1、2、3 Activity 并执行新 Activity ;代码:

        Intent intent = new Intent(UserpickActivity.this, CommunicationActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

UserpickActivity - 第 4 个 Activity ,CommunicationActivity - 下一个 Activity 。但是在这段代码之后,所有以前的 Activity 仍然有效。如何关闭所有正在运行的 Activity 并执行一些新 Activity ?

最佳答案

试试这个:

当您想从 Activity4 启动 CommunicationActivity 时,改为执行以下操作:

Intent intent = new Intent(this, Activity1.class); // Your root activity
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // Will remove all other activities from the task
intent.putExtra("foo", true); // This is to tell Activity1 to launch Activity4
startActivity(intent);

Activity1.onCreate() 中执行以下操作:

super.onCreate();
if (getIntent().hasExtra("foo")) {
// We should now launch CommunicationActivity and finish ourselves
Intent intent = new Intent(this, CommunicationActivity.class);
startActivity(intent);
finish();
return; // Don't continue the rest of onCreate()
}
// The rest of your onCreate() goes here

您只能使用 CLEAR_TOP 清除 Activity 堆栈中的现有 Activity 。这就是为什么您对 CLEAR_TOP 的使用不起作用(因为 Activity 堆栈中不存在 CommunicationActivity)。

此方法清除所有 Activity 并再次启动根 Activity 。当根 Activity 的 onCreate() 被调用时,它检查 Intent 中是否有额外的“foo”,它用作它需要启动 CommunicationActivity 并完成自身的信号.这应该可以满足您的要求。

关于java - 如何从另一个关闭所有正在运行的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16522298/

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