2016-07-21 4 views
0

예를 들어 A, B, C, D 등의 활동이 있습니다. 액티비티 D를 완료하고 스택을 지우고 액티비티 C로 돌아가는 것을 피하고 액티비티 B로 돌아가려면 어떻게해야합니까? 제발, 사용 목적이 없으면 C에서 D를 시작하고 C에서 onActivityResult를 실행하면 finish가 다시 사용됩니다.)Android clear 활동 백 스택

답변

0

FLAG_ACTIVITY_CLEAR_TOP 플래그를 사용할 수 있습니다.

여기에서 Android documentation을 참조하십시오. 실제로 주어진 예제를 사용합니다.

설정되어 있고 실행중인 활동이 현재 작업에서 이미 실행되고있는 경우 해당 활동의 새 인스턴스를 시작하는 대신 그것은 닫힐 것이고이 인 텐트는 새로운 인 텐트로서 (이제 맨 위의) 오래된 활동으로 배달 될 것입니다.

예를 들어, 활동으로 구성 작업을 고려 : A는, B는 C, D. 는 D 활동의 B의 구성 요소에 해결 텐트와 startActivity를()를 호출하면, C 및 D가 완성 될 것입니다 B는 주어진 인 텐트를받습니다. 결과는 스택에 A, B가됩니다.

0

해당 동작이 영구적 인 기준에 필요한지 또는 조건이 맞는지 확실하지 않습니다. 첫 번째 경우에는 당신이 당신의 D 매니페스트 활동 선언 다음 줄에 추가 할 수 있습니다

android:parentActivityName="com.example.B" 

을 두 번째 경우는 활동에 D 대체 할 수 있습니다 - 여기에서 Activity BonBackPressed() 방법 및 시작은 현재의 상황에 따라 달라집니다.