2015-11-02 45 views
-1

我有四個活動安卓:如何回到以前的活動

  • ListActivity
  • Itemdetail_Activity
  • record1_Act
  • record2_act。

我可以從ListActivity去 - > record1_ActListActivity < -record1_Act正常,但是當我想從Itemdetail_Activity去 - > record2_actItemdetail_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(); 
+0

檢查[這裏](http://stackoverflow.com/a/40386 37/3843476)你可能會找到你的答案。 – Gagan

+0

請輸入您想要的正確流程。或者輸入完整的代碼。 – DroidAks

+0

@DroidAks:我有活動1,2,3,4我可以去1 - > 2和1 <-2,當我想去3 - > 4並返回到3 < - 4這裏是問題。 4總是返回1意味着1 < - 4這是問題。 – androidTag

回答

1

開始活動後刪除finish()調用,因爲它會從堆棧中清除該活動,並且我看到您已在代碼中使用完成。你也不需要設置這些標誌。

0

在活動4,實施onBackPressed()的,

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

調用此方法,如果您有任何後退按鈕。如果你想鏈接每次活動的後備活動,你需要在每個活動中實施onBackPressed()方法。

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 
0

做檢查,如果ItemDetailsActivity不調用完成()