포그라운드에서 서비스 실행
포그라운드 서비스는 사용자가 능동적으로 인식하고 있으므로 메모리 부족 시에도 시스템이 중단할 후보로 고려되지 않는 서비스를 말합니다. 포그라운드 서비스는 상태 표시줄에 대한 알림을 제공해야 합니다. 이것은 "진행 중" 제목 아래에 배치되며, 이는 곧 해당 알림은 서비스가 중단되었거나 포그라운드에서 제거되지 않은 이상 해제될 수 없다는 뜻입니다.
예를 들어 서비스에서 음악을 재생하는 음악 플레이어는 포그라운드에서 실행되도록 설정해야 합니다. 사용자가 이것의 작동을 분명히 인식하고 있기 때문입니다. 상태 표시줄에 있는 알림은 현재 노래를 나타내고 사용자로 하여금 음악 플레이어와 상호작용할 액티비티를 시작하게 해줄 수도 있습니다.
서비스가 전경에서 실행되도록 요청하려면 startForeground()를 호출하면 됩니다. 이 메서드는 두 개의 매개변수를 취합니다. 그 중 하나는 해당 알림을 고유하게 식별하는 정수이고 다른 하나는 상태 표시줄에 해당되는 Notification입니다. 예:
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);
주의: startForeground()에 지정하는 정수 ID가 0이면 안 됩니다.
서비스를 전경에서 제거하려면 stopForeground()를 호출하면 됩니다. 이 메서드는 부울 값을 취하며, 이것이 상태 표시줄 알림도 제거할지 여부를 나타냅니다. 이 메서드는 서비스를 중단시키지 않습니다. 그러나, 서비스가 포그라운드에서 실행 중인 동안 서비스를 중단시키면 알림도 마찬가지로 제거됩니다.
알림에 대한 자세한 정보는 상태 표시줄 알림 생성을 참조하세요
안드로이드 레퍼런스 사이트에서 인용하였습니다.
참고 : https://developer.android.com/guide/components/services.html?hl=ko#Lifecycle