假设我的活动的主页上有一个按钮。
当我按下此按钮时,它会进入活动A
在活动A中,它会使用Intents和startActivityForResult()自动转到活动B;
在活动B中,它使用Intents和startActivityForResul()自动转到活动C;
在活动B中,它会自动启动意图去BarCode扫描程序活动并获得结果。
我的问题是当我按一个按钮返回我的主页时,需要按4次才能返回我的主页
如果我想一次回到我的主页,如何完成这一系列的活动?
答案 0 :(得分:3)
不要在程序的任何地方使用/覆盖onBackPressed()
只需在父活动中添加以下方法,例如活动A和B
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
使用
启动onClick方法上的Activity startActivityForResult(intentName, 0);
在Child Activity中,您使用/覆盖onStop()方法
@Override
protected void onStop()
{
super.onStop();
}
答案 1 :(得分:2)
您可以覆盖以下方法返回主页
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
}
在该方法中,使用以下标记
创建家庭活动的意图intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
该文件说
如果设置,则正在启动的活动已在运行中 当前任务,然后而不是启动它的新实例 活动,其上的所有其他活动将被关闭 这个意图将作为一个传递到(现在在顶部)旧活动 新的意图。
但我想知道的是,为什么你要开始结果活动,因为你不会回到之前的活动。
答案 2 :(得分:0)
finishActivity(requestCode)
在上一个活动中使用上面的代码,这样在按下后退按钮后它将关闭所有已启动的活动
requestcode是您在第一个活动中用于启动活动B的代码
答案 3 :(得分:0)
you may try this
Intent intent = new Intent(currentActivity.this, otherActivity.class); // instead of otherActivity use your activity
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
And, in your other onCreate() use below code -
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}