안드로이드 개발 질문/답변
(글 수 45,052)
List.class, Write.class가 android:launchMode="singleTask" 되어 있었습니다.
List.class에서 쓰기를 누르면 Intent로 데이터를 주고
Write.class에서 데이터를 받고 저장을 하게 되면 결과를 setResult()를 해줍니다.
당연히 finish()도 해주고요.
지금은 해결 했는데 이상하도 Write.class에서 데이터를 받으려고 getIntent()를 하니
List.class의 onActivityResult()가 실행되어 버리고
Write.class 에서 등록을 마치고 결과값을 setResult()하면 onActivityResult()가 실행이 되지 않더군요.
여기저기 구글링 해서 Write.class android:launchMode="singleTask"를 지우니
제가 원하는 결과를 얻기는 했는데...왜 이런 현상이 있는지
고수분들의 조언 좀 얻으려고 이렇게 글을 남깁니다.
List.class에서 쓰기를 누르면 Intent로 데이터를 주고
Write.class에서 데이터를 받고 저장을 하게 되면 결과를 setResult()를 해줍니다.
당연히 finish()도 해주고요.
지금은 해결 했는데 이상하도 Write.class에서 데이터를 받으려고 getIntent()를 하니
List.class의 onActivityResult()가 실행되어 버리고
Write.class 에서 등록을 마치고 결과값을 setResult()하면 onActivityResult()가 실행이 되지 않더군요.
여기저기 구글링 해서 Write.class android:launchMode="singleTask"를 지우니
제가 원하는 결과를 얻기는 했는데...왜 이런 현상이 있는지
고수분들의 조언 좀 얻으려고 이렇게 글을 남깁니다.




제가 알기로는 startActivityForResult() 를 통해 Activity를 실행하면
Caller Activity와 Callee Activity 는 같은 Task안에 있어야 정상적으로 결과를 받을수 있습니다.
안그러면 그냥 Caller의 onActivityResult로 바로 빠져버립니다. Callee는 그냥 실행되고 있구요...
SingleTask를 주셨으니 Write는 새로운 Task로 실행된거죠...
List와 Write가 다른 Task라서 제대로 결과를 주고 받지 못한겁니다.