Android 기술 Q&A 
Q&A 게시판에 질문을 남기신 글에 대한 답변/덧글/쪽글에 대한 Push 메일 서비스를 받고자 하시는 분들은
☞ Push 메일 서비스 공지를 필독하시기 바랍니다.
Android 버전에 따라 onActivityResult을 호출하는 순서가 다른데...
작성자
작성일 2017-09-15 (금) 16:28
분 류 질문
ㆍ추천: 0  ㆍ조회: 3390      
IP: 59.xxx.98
Android 버전에 따라 onActivityResult을 호출하는 순서가 다른데 원인을 몰라서 질문 드립니다.
현재 Android 버전 5.0이상에서는 Activity를 먼저 호출하고 호출된 Activity가 닫히면 onActivityResult을 호출 하는데
Android 버전 4.1.2에서는 호출하고자 하는 Activity가 먼저 열리지 않고 onActivityResult를 호출한 다음에 Activity가 열리고 있는데 뭐가 다른건가요?
예전에는 괜찮았던거 같은데 갑자기 처리가 이상해 졌습니다.

원하는 처리의 순서는 
5.0이상에서는 SchedActivity -> SiteLstActivity -> onActivityResult순서로 잘 호출됩니다.
그런데 
4.1.2에서는 SchedActivity-> onActivityResult -> SiteLstActivity  순서로 호출이되서 SiteLstActivity에서 설정한 값을 받아오지 못하고 있습니다.
4.x버전에 모두 그런거 같은데 현재 테스트용 단말의 버전이 4.1.2라 이 버전만 확인했습니다.

    btnSite.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(SchedActivity.this, SiteLstActivity.class);
            intent.putExtra("_CompCd", strCompCd);
            startActivityForResult(intent, 10);
       }
    }); 

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(data != null)
        {
            if(requestCode == 10 && resultCode == 0) {
                if(data.getStringExtra("strSiteNm").equals("") == false){
                    txtSiteNm.setText(data.getStringExtra("strSiteNm"));
                    txtSiteCd.setText(data.getStringExtra("strSiteCd"));
                }
            }
        }
    }

아래는 LogCat으로 출력한 디버그 로그입니다.

혹시나 해서 로그 떠서 첨부합니다.
Android 4.1.2에서
09-15 07:13:18.600: D/msg(7520): main setOnClickListener.....................
09-15 07:13:18.660: D/msg(7520): main setOnClickListener...startActivityForResult..................
09-15 07:13:18.660: D/msg(7520): main onActivityResult.....................
09-15 07:13:18.690: D/msg(7520): sub onCreate.....................
09-15 07:13:20.892: D/msg(7520): sub reIntent.putExtra.....................
09-15 07:13:20.892: D/msg(7520): sub setResult.....................
09-15 07:13:20.912: D/msg(7520): sub finish.....................

Android 5.0에서
09-15 16:14:11.355: D/msg(30313): main setOnClickListener.....................
09-15 16:14:11.395: D/msg(30313): main setOnClickListener...startActivityForResult..................
09-15 16:14:11.465: D/msg(30313): sub onCreate.....................
09-15 16:14:13.015: D/msg(30313): sub reIntent.putExtra.....................
09-15 16:14:13.015: D/msg(30313): sub setResult.....................
09-15 16:14:13.025: D/msg(30313): sub finish.....................
09-15 16:14:13.075: D/msg(30313): main onActivityResult.....................

덧글 쓰기 0
3500
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
    N     분류     제목    글쓴이 작성일 조회
3 질문 Android 버전에 따라 onActivityResult을 호출하는 순서가 다.. 2017-09-15 3390
2 질문 액션캠( SJ4000 ) 연동 질문 2018-01-25 2331
1 질문 앱에 sl4a 를 내장하는 방법 문의 2018-04-23 1912
1,,,101