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