투케이2K

133. (TWOK/LOGIC) [android] 안드로이드 http 통신 api 호출 폴링 수행 시 액티비티 종료 상태 체크 및 폴링 로직 종료 수행 본문

투케이2K 로직정리

133. (TWOK/LOGIC) [android] 안드로이드 http 통신 api 호출 폴링 수행 시 액티비티 종료 상태 체크 및 폴링 로직 종료 수행

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

[로직 정리]

정리 로직 : Mobile

상태 : [android] 안드로이드 http 통신 api 호출 폴링 수행 시 액티비티 종료 상태 체크 및 폴링 로직 종료 수행

 

[설 명]

// --------------------------------------------------------------------------------------
[사전) 설정 및 정보 확인 사항]
// --------------------------------------------------------------------------------------

- 안드로이드에서 http 통신을 수행하기 위한 퍼미션 권한 설정 및 네트워크 연결 상태 확인 필요

- 퍼미션 권한 설정 코드 : 

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[로직 설명]
// --------------------------------------------------------------------------------------

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


2. http 호출 수행 전) 휴대폰 네트워크 상태 확인 및 인터넷 사용 가능 한 환경 여부 체크


3. [IF] 인터넷을 사용할 수 없는 상황 인 경우 :

    - 휴대폰 모바일 네트워크 환경 확인이 필요합니다. 팝업창 표시


4. [ELSE] 인터넷을 사용할 수 있는 경우 >> 특정 카운트 횟수 지정 및 http 폴링 동작 소스 코드 작성

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

        // [HTTP 폴링 수행]

   }


 5. for 구문 안에서 http 폴링을 수행하기 전) 액티비티가 종료 된 상태 인지 코드 앞단에서 확인 수행 및 폴링 종료 처리 코드 추가

    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