CAFE

안드로이드 질문

FLAG_ACTIVITY_FORWARD_RESULT 관련 질문 드립니다.

작성자주룩주룩|작성시간14.02.14|조회수81 목록 댓글 2

안녕하세요 


FLAG_ACTIVITY_FORWARD_RESULT를 사용중에 의문이 생겨서 질문드립니다.


 흔히 예를 드는..



 Activity A, B, C 가 있고


 A가 B로 startActivityForResult(intent, 0);  


B가 C로  FLAG_ACTIVITY_FORWARD_RESULT 하면..


 당연히 c의 setResult()는 A가 받게 되는데..



이때  C에서 back key로  B로 이동하게 되면 


 위의 관계가 깨어지더군요.


 이럴때에는 어떻게 처리를 해야 하는걸까요??????



 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자슈퍼성근 | 작성시간 14.02.17 안녕하세요.

    A -> B -> C 에서 C가 A에게 인텐트를 전달하고 싶다면
    이전키 등과는 무관합니다.
    setResult를 최종적으로 어디서 했냐가 중요하지요.

    만일 B ->C에서 FLAG_ACTIVITY_FORWARD_RESULT 설정한 상태에서
    이전키를 눌러 B에서 다시 setResult()를 했다면 C에서 받은 인텐트를
    최종으로 처리한 인텐트로 바뀌어 버립니다.
    즉 C에서 setResult를 했고 A까지 가야 한다면
    B에서 setResult를 하시면 안됩니다.

    A->B->C 상태에서

    C(setResult and finish) -> B(finish) -> A( C의 intent를 받게됨)
    C(setResult and finish) -> B(setResult and finish) -> A( B의 intent를 받게됨)

    이렇겠네요.
  • 작성자주룩주룩 작성자 본인 여부 작성자 | 작성시간 14.02.17 B에서는
    Intent intent = new Intent(getActivity(), C.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
    getActivity().startActivity(intent);
    이렇게 C에게 결과를 넘기도록 되어 있습니다.
    C에서만 setResult를 하게 (이때 B를 finish()) 되어 있구요.

    C(finish [back key] ) -> B (다시 C에게 FLAG_ACTIVITY_FORWARD_RESULT)전달 -> 결과는 A가 result를 못 받음..

    이렇게 되고 있네요.
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼