2012-03-08 3 views
1

은 (A는, B, C)은 다음과 같은 순서에 오픈한다고 가정 활동을 수 있습니다 번만 가기 backstack에 거주하고 있는지 확인하십시오만들려면 하나 개의 안드로이드 활동

이제
A -> B -> A -> C-> A 

일반적인 경우

를 볼 것이다 가기 backstack 활동에
| A | 
| C | 
| A | 
| B | 
| A | 

Activity A이 백 스택에 한 번만 있는지 확인할 수있는 방법이 있습니까?

| A | 
| C | 
| B | 

편집 : 또는 다른 말로 같이 가기 backstack 나는 활동의 새로운 인스턴스마다 시작되며, 이전의 모든 인스턴스가 스택에서 제거되는 것을 원한다. 내장 된 체계를 사용하는 것이 가능합니까? 당신이 의도 플래그의 사용을 만들고 싶어처럼

답변

4
+0

안녕하세요, 도움 주셔서 감사합니다 ...하지만 그 활동의 새로운 인스턴스가 매번 실행되고 모든 이전 인스턴스가 스택에서 제거되기를 원합니다? –

+0

활동 A의 데이터를 다시 초기화하고 onResume()에서 상태를 재설정하면 새 활동 A를 시작한 것과 같은 효과를 얻지 못합니까? – NickT

+0

O 세상에, 나는 .... 어떻게 그리워 했는가? 인해 추가 작업로드 수 있습니다. 감사합니다 ........ –

0

안드로이드 :의 launchMode 당신의 도움이 될 수 있습니다 매니페스트 :

http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

그것의 주요 활동에 기어의 종류의 당신의 응용 프로그램에 있지만, 스택에있는 임의의 활동에는 적용되지 않습니다.

편집 : 당신이 결과를 활동으로 B와 C를 시작하려는처럼 다음 소리 당신은 아직 시작에있을려면 내가 upvoted 한 NickT의 대답 :

+0

안녕하세요, 도움을 주셔서 감사합니다. 내 편집을 참조하십시오. –

0

를 참조하십시오. Activity.startActivityForResult

그 방법을 참조하십시오, 원래 활동 A는 B와 C와 때 A가 상단 NickT로 이동하려면 B와 C 출구가,

그렇지 않으면 원래 A.로 돌아갑니다 시작됩니다있다 정답.

+0

안녕하세요, 도움을 주셔서 감사합니다. 내 편집을 참조하십시오. –

2

매니페스트의 각 활동에 대해 android:launchMode="singleTask" 또는 android:launchMode="singleInstance"을 설정해야합니다.

+0

안녕하세요. 도움에 감사드립니다. 내 편집을 참조하십시오. –

+0

이것은 나를 위해 일했다 : D! –