2014-01-15 20 views
0

我有兩個活動活動A和活動B.當我點擊活動A中的按鈕時,活動B開始。現在,當我按下活動B中的按鈕時,活動A重新開始。但是當我按下活動B中的後退按鈕時,我想要退出應用程序。我想提前如何從活動backstack中移除活動?

回答

1

您需要完成ActivityA使用這一點,但沒有得到成功

Intent intent=new Intent(ActivityA.this, ActivityB.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

感謝一旦你開始ActivityB

Intent intent=new Intent(ActivityA.this, ActivityB.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
finish(); 
0

後startActivity(意向只需調用完成() )。

Intent intent=new Intent(ActivityA.this, ActivityB.class); 
       intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(intent); 
finish(); 
1

通話結束()開始新的活動後 - 這將關閉主叫活動:

startActivity(new Intent(ActivityA.this, ActivityB.class)); 

//calling finish() closes current Activity 
finish(); 

瞭解更多關於活動的生命週期herehere

0

Intent.FLAG_ACTIVITY_CLEAR_TOP不適合您的情況。在您的代碼中,ActivityA會重新重新構建。TaskStack中有兩個ActivityA實例。刪除addFlag。

Intent intent=new Intent(ActivityA.this, ActivityB.class); 
startActivity(intent); 
finish();