我的应用中有2个活动(A和B)。在活动B上,我有一个自定义工具栏。当用户单击工具栏时,它将返回到活动A.我希望用户每次按下活动A上的后退按钮时退出应用程序。 我的问题是每当用户点击活动A上的后退按钮时,它将计算用户输入活动B然后退出A的次数。
我正在使用此代码:
toolbar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent goBack=new Intent(getApplicationContext(),seephotoActivity.class);
goBack.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(goBack);
finish();
}
});
我也尝试在我的AndroidManifest.xml中添加android:noHistory="true"
,但它仍在计算中。有人可以指出我的错误并解释它吗?
答案 0 :(得分:0)
请参阅以下代码。
活动A
// It will navigate to the B Activty. Don't call finish() here.
startActivity(new Intent(ActivityA.this,ActivityB.class));
// Override the on back press method.
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
// Process of Counting the no.of views/ counts goes here
finish();
super.onBackPressed();
}
活动B
当按On工具栏中的Back时,结束();
调用finish()方法。 这将使您回到活动A.不要开始新的活动。
然后当您再次按下ActivityA时,它将退出App。
试试这个,希望它能帮到你。
答案 1 :(得分:0)
如果您想要退出应用,请在活动A中尝试此操作
@Override
public void onBackPressed()
{
finish();
}
答案 2 :(得分:0)
我找到了解决问题的方法。所以问题是活动堆栈,所以我在Activity B中做了什么,我重写了像这样的反压方法
@Override
public void onBackPressed() {
Intent goback;
goback = new Intent(B_activity.this, A_Activity.class);
goback.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
goback.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(goback);
}
因此,当它返回到活动A时,活动A将位于堆栈顶部,而活动A后面没有任何其他内容。
然后在活动A中,我重写了这样的背压方法:
@Override
public void onBackPressed()
{
finish();
}
希望它能帮助那些和我有同样问题的人。