Android:如何返回上一个活动

时间:2015-11-02 06:24:46

标签: android

我有四项活动

  • ListActivity
  • Itemdetail_Activity
  • record1_Act
  • record2_act。

我可以从 ListActivity - > record1_Act ListActivity< -record1_Act 正确但当我想从 Itemdetail_Activity - > record2_act 并从 Itemdetail_Activity< - record2_act 返回,它总是 record2_act到ListActivity

我甚至使用i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);但它不起作用。如何解决这个问题?

这是我的代码

Intent i = new Intent(record2_act.this, Itemdetail_Activity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);

Intent i = new Intent(record1_Act.this, ListActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
finish();

4 个答案:

答案 0 :(得分:1)

启动活动后删除finish()调用,因为它将从堆栈中清除该活动,并且我看到您在代码中使用了finish。你也不需要设置这些标志。

答案 1 :(得分:0)

在活动4中,将onBackPressed()实现为,

@Override
public void onBackPressed()
{
 Intent i = new Intent(4.this, 3.class);
 startActivity(i);
}

如果您有任何后退按钮,请调用此方法。如果你想在每个活动中为你需要实现onBackPressed()方法的每个活动链接背压。

答案 2 :(得分:0)

你可以拨打 onBackPressed()如果以前的活动没有完成,你可以使用:

this.finish();
// Or
Activity currentActivity = this;
currentActivity.finish();

如果您之前完成了活动,则必须跟踪活动中的用户并制作活动列表,然后转到:

activitiList.get(activityList.size() - 2);
// activityList.size() - 1 is last activity and activityList.size() - 2 is previous activity

答案 3 :(得分:0)

检查ItemDetailsActivity是否未调用finish()