假设有一个活动,命名为活动 S。
然后会有很多活动,比如 10 个活动,命名为 A、B、C、...、J。
我怎样才能做到这一点:
从那些 A--J 活动中,当按下后退按钮时,总是返回到活动 S。
不管活动的顺序或创建方式如何。
例如:
从S开始,到B,再到D,再到G。
在活动G中,按返回键,会回到S。
== 编辑 ==离开所有 A--J 活动时
我应该使用方法吗?Activity.finish()
假设有一个活动,命名为活动 S。
然后会有很多活动,比如 10 个活动,命名为 A、B、C、...、J。
我怎样才能做到这一点:
从那些 A--J 活动中,当按下后退按钮时,总是返回到活动 S。
不管活动的顺序或创建方式如何。
例如:
从S开始,到B,再到D,再到G。
在活动G中,按返回键,会回到S。
== 编辑 ==离开所有 A--J 活动时
我应该使用方法吗?Activity.finish()
您可以根据您想要的确切结果以不同的方式完成此操作。您可以将以下行添加到您的<activity>
标签manifest.xml
中Activities
android:noHistory="true"
或在每个覆盖时使用Intent
标志onBackPressed()
@Override
public void onBackPressed()
{
Intent i = new Intent(CurrentActivity.this, S.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);`
startActivity(i);
super.onBackPressed();
}
Activities
这将从堆栈中清除另一个并将您返回到S
.
如果您想Activities
在返回时保留堆栈,S
那么您可以更改使用的标志
@Override
public void onBackPressed()
{
Intent i = new Intent(CurrentActivity.this, S.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);`
startActivity(i);
super.onBackPressed();
}
最后一种方法将S
放在前面并将另一种方法保留在Activities
堆栈中,我认为这不是您想要的,而只是另一种选择。您可能需要前两种方法中的一种。
你必须这样做才能实现,设置一个标志,将清除堆栈中的每个活动并将意图传递给 S.class,像这样
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
Intent intent=new Intent(this,S.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}