본문 바로가기

service service : 백그라운드에서 장기실행이 가능한 구성요소로 사용자 인터페이스를 제공하지 않는다. service를 사용해야 하는 이유는 1. 구성요소의 생명주기와 스레드 생명주기의 분리 2. 호스팅 프로세스의 생명주기 때문이다. 메모리 누수에 의한 위험과 너무 빨리 태스크가 종료될 위험 모두 줄일 수 있다. 1. 기본 동작 방식 (1) 시작됨 - startservice -> onstartcommand(2) 바인드됨 - bindservice -> onBind -> 클라이언트는 serviceconnection구현** 서비스는 기본적으로 메인(UI)스레드에서 실행된다. 서비스가 시스템에 의해 종료되지 않는 경우는 포그라운드 액티비티와 바인딩되어 있는 경우 포그라운드 서비스일경우 거의 종료되지 않음 onstar.. 더보기
wakelock wakelock - 슬립모드에 있을때 폰을 깨우는 것1) permission 설정 2) cpu 깨어있도록 하기 (PARTIAL_WAKE_LOCK) 3) 화면깨우기(ACQUIRE_CAUSE_WAKEUP) wakelock을 사용하기전에 고려해야할점1. 앱이 오래 실행되는 http다운로드수행하는 경우에는 downloadmanager를 이용할것!2. 앱이 외부서버와 데이터 동기화를 할 경우 syncadapter를 사용3. 앱이 백그라운드 서비스에 의존하는 경우 jobscheduler, fcm를 사용4. keep screen on을 사용한다 -> wakelock과 달리 특수권한이 필요치 않다. 더보기
브로드 캐스트 보내는 방법 브로드 캐스트 보내는 방법 1. sendOrderedBroadcast - 브로드캐스트를 한번에 하나의 수신기로 보낸다. 2. sendBroadcast - 모든 수신지로 보낸다. 3. localBroadcastManager sendBroadcast - 보낸사람과 동일한 앱에 있는 수신기로 브로드캐스트를 보낸다. (앱의 외부구성요소에 보낼필요가 없는경우) 더보기