我有一个活动层次结构,我有一个按钮,允许我从活动D转到活动B.
问题是从D转到B会将C留在后台上,所以如果我做A-> C-> D-> B然后按回来它会将我发送给C,而不是A(这就是我想要的)。
当我点击B中的按钮时,有没有办法删除C,还是有某种解决方法?
答案 0 :(得分:1)
考虑使用A
作为调度程序。当您想要从B
启动D
并在此过程中完成C
时,请在D
中执行此操作:
// Launch A (our dispatcher)
Intent intent = new Intent(this, A.class);
// Setting CLEAR_TOP ensures that all other activities on top of A will be finished
// and setting SINGLE_TOP ensures that a new instance of A will not
// be created (the existing instance will be reused and onNewIntent() will be called)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
// Add an extra telling A that it should launch B
intent.putExtra("startB", true);
startActivity(intent);
A.onNewIntent()
中的执行此操作:
@Override
protected void onNewIntent(Intent intent) {
if (intent.hasExtra("startB")) {
// Need to start B from here
startActivity(new Intent(this, B.class));
}
}