我有像这样的开放活动
活动-A(获取用户个人详细信息) - >
活动-B(获取用户联系信息) - >
活动-C(获取用户信用卡详细信息) - >
活动-D(信用卡验证)
现在从Activity-D开始,我需要移动到Activity-B,而不会丢失用户在Activity-B上输入的数据
我在Activity-D上尝试了finish()
menthod但它失败了。
我已使用以下方法打开所有活动。从Activtiy-A到Activty-B的例子
Intent intent_B = new Intent(getApplicationContext(), ActivityB.class)
startActivity(intent_B);
如何从Activity-D
恢复活动-B答案 0 :(得分:1)
将活动B的所有必需数据存储/恢复为savedInstanceState。
使用Intent.FLAG_ACTIVITY_CLEAR_TOP
这会导致您完全需要的行为:
答案 1 :(得分:1)
解决问题的简单方法。
在导航到活动D之前,您应该致电finish()
。
Intent intent_D = new Intent(getApplicationContext(), ActivityD.class)
startActivity(intent_D);
finish();
这将完成活动C,活动A和B仍然在后台。因此,当您单击Backpress或在活动D上调用finish()
时,您将在活动B上导航,您的数据将无需任何额外工作即可使用。
答案 2 :(得分:0)
答案 3 :(得分:-1)
这里
在活动1 ::
Get-Content
在活动2 ::
中完成该活动的任务后。
只需
int REQ_INT=888;
Intent intent_B = new Intent(getApplicationContext(), ActivityB.class)
startActivityForResult(intent_B,REQ_INT);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK)
switch (requestCode) {
case REQ_INT:
//DO your stuff here after getting in this activity again..
break;
}
}
您可以通过意图将数据传递给该活动。