我是创建 android 应用程序的新手,我正在尝试做一些看起来应该很简单的事情,但即使在这里搜索后,我似乎也找不到一种方法来做我想做的事......
我有2项活动(A和B(。 活动 A 具有启动活动 B 的导航按钮,活动 B 具有启动活动 A 的导航按钮。两者都是用如下代码实现的:
Intent intent = new Intent(this, ActivityB.class);
startActivity(intent);
如果我启动我的应用程序并且活动 A 在屏幕上,然后我按返回键,应用程序会随心所欲地"消失"。
目前为止,一切都好。
但是,如果我启动我的应用程序,并使用导航按钮从 A 切换到 B,然后从 B 切换回 A,然后按返回键,则会出现活动 B。 我想要的是,每当我从活动 A 按后退键时,我都希望我的应用"消失",就像我尚未离开活动 A 时一样。 这能做到吗?
为此,请在 ActivityB 的导航按钮中执行以下操作:
Intent intent = new Intent(this, ActivityB.class);
intent.setFlags(FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
这使您的 ActivityA 实例出现在前面,而不是创建一个新实例。通过完成活动B,后退按钮将使应用程序"消失"。
尝试以下代码:
Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
使用 Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_SINGLE_TOP旗
Intent a = new Intent(this,ActivityA.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(a);
现在,每当我们返回到 A 时,A 上方的所有内容都会被清除,并再次将其设置为根活动。
好读https://developer.android.com/guide/components/activities/tasks-and-back-stack.html