투케이2K

137. (TWOK/WORK) [업무 이슈] 안드로이드 android http 통신 api 호출 폴링 수행 시 액티비티가 종료 된 상태에서도 api 호출이 지속 되는 이슈 본문

투케이2K 업무정리

137. (TWOK/WORK) [업무 이슈] 안드로이드 android http 통신 api 호출 폴링 수행 시 액티비티가 종료 된 상태에서도 api 호출이 지속 되는 이슈

투케이2K 2025. 2. 13. 20:15

[제 목]

[업무 이슈] 안드로이드 android http 통신 api 호출 폴링 수행 시 액티비티가 종료 된 상태에서도 api 호출이 지속 되는 이슈

 

[내 용]

------------------------------------------------------------------------------
[이슈 사항]
------------------------------------------------------------------------------

1. 안드로이드 http 통신 api 폴링 호출 시 액티비티 화면이 종료 되어도 new Thread 내에서 동작하고 있는 폴링이 종료 되지 않는 이슈 발생

------------------------------------------------------------------------------





------------------------------------------------------------------------------
[원인 파악 및 증상 재현]
------------------------------------------------------------------------------

1. 안드로이드 애플리케이션 실행 및 http 통신 api 폴링 호출 수행 화면 진입


2. http 통신 api 폴링 동작 수행 실시


3. 폴링이 동작 되고 있는 상태에서 >> 안드로이드 뒤로가기 버튼 클릭 및 액티비티 finish 종료 처리 수행


4. 액티비티 라이프 사이클 onDestroy 상태 확인


5. http 폴링 로직이 종료 되지 않고 지정 된 횟수 만큼 계속 동작 되고 있는 상태 확인

------------------------------------------------------------------------------





------------------------------------------------------------------------------
[조치 내용]
------------------------------------------------------------------------------

1. 안드로이드 http 폴링 호출 로직 구문에서 액티비티 isRunning 구동 상태 확인 후 종료 된 상태 인 경우 폴링 로직을 탈출 하도록 소스 코드 변경


2. 소스 코드 예시 : 

    for (int i=0; i<10; i++){

        // [현재 폴링을 수행하고 있는 액티비티 화면이 구동 중 상태 확인]
        if (activityIsRunning == false){ // [액티비티 화면이 종료 된 경우 : onDestroy]
            
            break; // [폴링 구문 탈출]
        }


        // [HTTP 폴링 수행]

    }

------------------------------------------------------------------------------





------------------------------------------------------------------------------
[참고 사이트]
------------------------------------------------------------------------------

[안드로이드 os 가 장착 된 특정 단말기 에서 정보 갱신을 위한 주기적 폴링 (polling) 체크 로직]

https://blog.naver.com/kkh0977/223638638254?trackingCode=blog_bloghome_searchlist


[유틸 파일] RequestSyncPatchBodyJsonHttp 안드로이드 동기 방식 http patch 요청 실시

https://blog.naver.com/kkh0977/223175440539?trackingCode=blog_bloghome_searchlist


[http 통신 요청 스레드 에러 - android.os.NetworkOnMainThreadException]

https://blog.naver.com/kkh0977/222696839681?trackingCode=blog_bloghome_searchlist


[라이브러리 : retrofit 레트로핏 (Java / http / Network)]

https://blog.naver.com/kkh0977/222915098499?trackingCode=blog_bloghome_searchlist

------------------------------------------------------------------------------
 
반응형
Comments