我正面临着一个问题,经过多次努力,我想我无法解决它。我希望有人可以帮助我。现在以下是我的情况:
活动A启动活动B,活动B自行启动(但活动B中的内容已更改,此步骤可能多次发生)。现在,当我按回键时,如何直接进入活动A.
这是我的代码:
Intent intent = new Intent(QuestionNaireActivity.this,
QuestionNaireActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);startActivity(intent);
我试过以下:
1.使用Intent.FLAG_ACTIVITY_SINGLE_TOP
,它直接转到活动A,但是当B转到B时,内容不会改变。
2.使用Intent.FLAG_ACTIVITY_CLEAR_TOP,当转到活动A时,它会报告如下的BUG:
java.lang.RuntimeException: Failure delivering result ResultInfo
{who=null, request=1000, result=0, data=null} to activity {com.snt.dauditapp/com.snt.dauditapp.Activity.SubTabFragments.QuestionnaireNavigationDetailActivity}:
java.lang.NullPointerException
请建议我。谢谢!
答案 0 :(得分:0)
使用CLEAR_TOP标志将在您移动到新活动后从堆栈中删除任何先前的活动。 如果你想利用正常的"返回"行为,其中单击返回返回到上一个活动,然后您不需要在intent上指定任何标志。这是默认功能。
我的建议是:始终从活动A开始。如果您需要直接转到B,请确保活动A立即将您引导至B. 这样,在B中单击返回将始终返回A。
希望这有帮助。
答案 1 :(得分:0)
尝试在调用新活动时完成旧的B活动。像这样......
Intent intent = new Intent(QuestionNaireActivity.this, QuestionNaireActivity.class);
startActivity(intent);
finish();
答案 2 :(得分:0)
正在寻找
我如何直接进入活动A
在活动B上使用以下内容
@Override
public void onBackPressed() {
Intent i = new Intent(this,
ActivityA.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}