2012-12-03 61 views
2

我想將我新創建的活動設置爲堆棧中的唯一活動,並且也位於其上,因此當從A創建活動B時,我可以按回從B.返回主菜單在活動堆棧上設置一個活動

因此,這是我做的

public void onClick(View v) { 
    Intent i = new Intent(this,B.class); 

    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    startActivity(i); 

} 

出於某種原因,活動B開始後,按下背部還帶我到A.

我是什麼在這裏失蹤?

回答

3

做這樣

public void onClick(View v) { 
Intent i = new Intent(this,B.class); 

i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(i); 
finish(); // to end the current activity 
} 

通話完成後()啓動後(...),以便A activity ll removed from the stack。當你按下返回按鈕A活動將不在堆棧中。

+0

Money答案。非常感謝。 – l46kok

+0

我的榮幸,我幫你出來:) :) –

1

當您在Activity A中調用startActivity(i)後,您必須調用finish(); - 完成活動。然後按回去並不會把你帶到A!

1

改變你的清單中的活動:

<activity 
      android:name=".ActivityA" 
       android:noHistory="true" 
> 
     </activity> 
0

這對我的作品,我用它爲同:

Intent myIntent = new Intent(this, b.class); 
myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivityForResult(myIntent, 0);