본문 바로가기
Android

Android polling(폴링) 백그라운드에서 API통신 해보기.

by 일용직 코딩노동자 2021. 7. 2.
728x90
반응형

안드로이드에서 백그라운드딴에서 앱이 종료되도 주기적으로 서버와 통신하며 상태를 확인해보는 작업을 해볼게요.

 

프로젝트에서 오른쪽 클릭해서 new - Service - Service 해서 서비스를 상속받는 클래스를 만들어주세요 (안드로이드 4대 컴포넌트!!)

 

public class MyService extends Service {
    public MyService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }
}

이게 초기상태로 작성된 서비스를 상속받은 클래스입니다.

 

여기서 onStartCommand 라는 함수를 오버라이딩 해줄게요.

 

Window는 컨트롤 + O

Mac은 커멘드 + O

 

누르시면 그 클래스 내에서 오버라이드 가능한 함수 목록을 표기해줍니다.

 

onstart 만 검색해도 바로 나오네요..!!

 

public class MyService extends Service {
    public MyService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        
        return super.onStartCommand(intent, flags, startId);
    }
}

자 그럼 이러한 형태로 나옵니다.

 

그럼 저기 onStartCommand 안에다가 백그라운드에서 하고싶은 작업을 작성해주시면 되는데요.

 

자 이제 백그라운드를 시작하고싶은 엑티비티 내에서 onStop 생명주기를 작성해주시고

 

Intent MyServiceIntent = new Intent(getApplicationContext(),MyService.class);
startService(MyServiceIntent);
Log.d("확인","백그라운드 시작");

그 안에 이렇게 작성해주시면 서비스를 시작할수있습니다.

 

반대로 서비스를 종료하고 싶으실때는 

 

stopService(MyServiceIntent);

 

이렇게 startService대신 써주시면 종료됩니다.

 

레트로핏은

 

https://onedaycodeing.tistory.com/118

 

안드로이드 retrofit2(레트로핏2)를 이용한 통신예제 (1)

저는 주로 데이터베이스의 정보를 긁어올때 사용하던 방법입니다. 우선 build.gradle (:app) 에다가 라이브러리를 추가해주겠습니다. implementation group: 'com.google.code.gson', name: 'gson', version: '2.8..

onedaycodeing.tistory.com

해당 게시글을 참고해주세요!

728x90
반응형

댓글