선생님, 개발을 잘하고 싶어요.

안드로이드 서비스 정리 본문

개발/android 개발

안드로이드 서비스 정리

알고싶은 승민 2018. 10. 3. 21:47

참고자료 : https://developer.android.com/guide/components/services?hl=ko


Service : 백그라운드에서 작업을 수행할 수 있는 어플리케이션 구성요소

 (cf. 어플리케이션 구성요소 : Activity, Service, Broadcast Receiver, Content Provider)


시작됨

 - startService() 를 호출하여 시작

 - onStartCommand() 를 사용하여 구성 요소가 서비스를 시작할 수 있게 허용


바인드됨

 - 애플리케이션 구성 요소가 bindService() 를 호출하여 해당 서비스에 바인드되어

  구성 요소가 서비스와 상호작용 가능

 - onBind() 를 사용하여 바인딩을 허용


onStartCommand() 

 - 다른 구성 요소가 서비스를 시작하도록 요청하는 경우


onBind()

 - 다른 구성 요소가 서비스에 바인드 되고자 하는 경우

 - 클라이언트가 서비스와 통신을 주고받기 위해 사용할 인터페이스 제공해야 한다.


onCreate()

 - 서비스가 처음 생성되어 일회성 설정 절차를 수행 (onStartCommand, onBind 를 호출하기 전에)


onDestroy()

 - 서비스를 소멸시키는 경우


Android 시스템이 서비스를 강제 중단 : 메모리가 부족하여 사용자 포커스를 가진 액티비티를 위해서 (서비스가 foreground에서 실행된다면 거의 중단되지 않음)


포그라운드에서 서비스 실행

 - 메모리 부족 시에도 시스템이 중단할 후보로 고려되지 않는 서비스 -> 시스템이 자동으로 죽이지 않는 서비스!

 - 상태 표시줄에 대한 알림을 제공하야 한다

 - startForeground() 를 호출하여 실행


Notification notification = new Notification(R.drawable.icon, getText(R.string.ticker_text),

        System.currentTimeMillis());

Intent notificationIntent = new Intent(this, ExampleActivity.class);

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

notification.setLatestEventInfo(this, getText(R.string.notification_title),

        getText(R.string.notification_message), pendingIntent);

startForeground(ONGOING_NOTIFICATION_ID, notification);

Comments