我有两个活动,A 和 B。这是一个正常的场景:A 正在运行,然后向 B 发送意图。A 暂停,B 显示。当用户从 B 按下返回按钮时,B 被破坏,用户返回到 A。
但是,存在 B 需要重新创建自身的情况。为此,我打电话finish()
,然后startActivity()
在 B 上,效果很好。但是,当我单击后退按钮时,它再次显示 B,因此我需要再次单击后退按钮才能返回 A。
如何重新启动 B,但仍然只能按一次返回按钮返回 A?
我有两个活动,A 和 B。这是一个正常的场景:A 正在运行,然后向 B 发送意图。A 暂停,B 显示。当用户从 B 按下返回按钮时,B 被破坏,用户返回到 A。
但是,存在 B 需要重新创建自身的情况。为此,我打电话finish()
,然后startActivity()
在 B 上,效果很好。但是,当我单击后退按钮时,它再次显示 B,因此我需要再次单击后退按钮才能返回 A。
如何重新启动 B,但仍然只能按一次返回按钮返回 A?
以下将在启动下一个意图时处理当前活动:
Intent launchNext = new Intent(getApplicationContext(), NextActivity.class);
launchNext.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(launchNext);
要覆盖后退按钮,请使用以下命令:
@Override
public void onBackPressed() {
super.onBackPressed();
this.finish(); // or do something else
}
这可以通过仔细查看您的意图标志来解决。查看http://developer.android.com/reference/android/content/Intent.html,它们会提供有关您所追求的生命周期的更多信息。
另外,不要忘记您可以覆盖后退按钮功能。如果您想更密切地管理您的生命周期,这可能会有所帮助。例如,如果从 B 返回,您还可以确保返回 A。如果返回 A,则关闭您的应用程序。