我有三项活动(A,B,C),
活动A中的按钮将用户发送到活动B
在活动B中,有另一个按钮将用户发送到活动C,当活动发生时,还会在活动B上调用finish()。
现在,每当用户在活动C中按下设备的按钮时,它就会将它们发送到活动A.我不希望这种情况发生。如果用户在活动C中按下后退按钮,应用程序应该完成。或者去最近的屏幕"标签?无论你怎么称呼它。请帮我完成这件事。
答案 0 :(得分:1)
尝试在活动C中覆盖onBackPressed,如下所示:
@Override
public void onBackPressed() {
finishAffinity();
}
对于较旧的apilevel> = 11,在启动活动C时尝试此操作:
Intent intent = new Intent(MainActivity.this, TestActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
答案 1 :(得分:0)
场景1: 你可以在进行活动时完成()A。然后在活动C上覆盖onBackPress()并调用方法finish();它将完成活动C.
场景2:如果你想在从C返回而不是从B返回时完成Activty A,则每次和每次后退都完成Activty按下通过在onBackPress上覆盖它来启动上一个活动()
例如`
onBackPress()
{
Intent intent = new Intent(this,prevActivity.class);
startactivty(intent);
finish();
}
另一种方法是当你重写onBackPress()insyead os startActivity() startactivityForResult();
并发送代码。 在每个类处理结果的活动,如果特定代码存在,则完成()活动。
答案 2 :(得分:0)
点击活动A的按钮:
btn_A.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i=new Intent(A.this,B.class);
startActivity(i);
finish();
}
});
在活动B中:
@Override
public void onBackPressed() {
super.onBackPressed();
Intent i=new Intent(B.this,A.class);
startActivity(i);
finish();
}
}