2013-06-17 1 views
1

startActivityForResult를 사용하여 새 활동 B를 시작하는 활동 A가 있습니다.
FLAG_ACTIVITY_CLEAR_TOP으로 활동 B가 여러 번 다시 시작되므로 사용자가 뒤로 클릭하면 B는 setResult()으로 데이터를 저장하고 활동 A로 돌아갑니다.
그러나 데이터가 누락되었습니다. A의 onActivityResult은 기본적으로 null과 resultCode의 의도로 호출됩니다.
startActivityForResult 및 FLAG_ACTIVITY_CLEAR_TOP

나는 사실, FLAG_ACTIVITY_CLEAR_TOP 폐기 이전 활동 이후 올바른 행동하다는 것을 알고 있지만,이를 달성하기 위해 몇 가지 해결 방법은

+1

아마도 전역 (정적) 변수를 사용합니다. 정말 우아한 것은 아니지만 일해야합니다. – mihail

+0

나는 우아하지는 않지만 동의한다. 그것은 실현 가능한 해결책이 될 것이다. –

답변

1

모두 FLAG_ACTIVITY_CLEAR_TOP 추가 (다시 시작 B를 피처럼 떨어져 명백한 옵션에서)이 궁금 당신의 발사 의도에 FLAG_ACTIVITY_SINGLE_TOP 당신은 활동 B.

activityBIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

또한 다시 실행 활동 B 그러나 getIntent() 여전히 이전 (원본) 의도를 제공 할 것입니다, onNewIntent(Intent) 호출 다시 시작할 때.

getIntent()는 여전히 원래 의도를 반환합니다. setIntent (인 텐트)를 사용하여 새로운 인 텐트로 업데이트 할 수 있습니다.

관련 문제