Background 동작을 위한 컴포넌트
MainActivity를 종료하면 Thread의 참조변수가 사라짐
Thread는 계속 반복 작업을 하는데 제어할 수 있는 참조변수가 없음
MainActivity와 다른 또다른 Component, Intent startService()
/stopService
이용 --> 참조변수가 없음!
Foreground Service : 사용자에게 서비스가 동작중임을 인식하도록 반드시 알림(Notification)을 보이도록 강제하는 서비스 개념
Oreo 버전부터 "Foreground Service" 라는 개념 도입 startService()
대신 startForegroundService
어떤 메소드를 쓰고 싶으면 참조변수를 통해 제어,
MyService가 가지고 있는 기능을 사용하고 싶음, 컴포넌트 참조불가
bindService()
이용
MainActivity에서 Connection이라는 가상의 터널을 뚫음
Service에서 Binder 객체를 만들어 Service의 주소를 Connection을 통해 가져가서 BIND!
startService로 Service를 만들고 bindService를 통해서 값을 연결
startService()와 bindService의 lifecycle이 다름
bind를 하면 Foregrond작업까지 됨
+ PendingIntent [Activity, BroadcastReceiver, Service]