2014-01-15 2 views
0

두 개의 액티비티 A와 B가 있습니다. 액티비티 A의 버튼을 클릭하면 액티비티 B가 시작됩니다. 지금 내가 활동 B에서 뒤로 버튼을 누르면 활동 A가 다시 시작됩니다. 하지만 B 액티비티의 뒤로 버튼을 누르면 앱에서 나가고 싶습니다.활동 백 스택에서 활동을 제거하는 방법은 무엇입니까?

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

답변

1

사전에 성공을

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

덕분에이를 사용하지만받지 시도). 새로운 활동을 시작한 후

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

그냥 만약 startActivity (의도 후 마무리()를 호출 : 당신이 ActivityB을 시작하고 일단 당신이 ActivityA을 완료 할 필요가

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(); 
관련 문제