【发布时间】:2016-02-13 16:42:09
【问题描述】:
比如我开了活动A、B、C、D。
我想完成D和C,然后回到B。
我不想打开带有明确任务和新任务标志的活动 B。我也想保留活动 A,以便用户可以使用后退按钮从 B 返回到 A。
我怎样才能做到这一点?
【问题讨论】:
标签: android android-activity back activity-finish
比如我开了活动A、B、C、D。
我想完成D和C,然后回到B。
我不想打开带有明确任务和新任务标志的活动 B。我也想保留活动 A,以便用户可以使用后退按钮从 B 返回到 A。
我怎样才能做到这一点?
【问题讨论】:
标签: android android-activity back activity-finish
Intent intent = new Intent(getApplicationContext(), B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
在 B 活动中:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
finish();
}
return super.onKeyDown(keyCode, event);
}
【讨论】:
我认为你可以在 C 和 D 类的活动方法 onDestroy() 中添加 this.finish(),然后如果你从 C 转到 D,Android 将完成此 Activity,你将直接从 D 转到 B,而不是D 到 C。
希望对你有帮助。
【讨论】:
创建一个全局静态 boolean 说 closeActivity。默认设置为false。当 D 结束时,将变量设置为 true。在活动 C 的onResume 中,检查变量是否设置为true,如果是true,则调用finish()。这样做直到达到活动 B 并在 B 的 onResume 中将 boolean 设置为 false
【讨论】: