[안드로이드스튜디오] 서비스와 방송수신자

2021. 10. 3. 22:19·Programming/Mobile

# 서피스의 종류

시작 타입의 서비스, 연결 타입의 서비스

* 시작 타입의 서비스 (started service)

= 액티비티가 startService()를 호출하여서 서비스를 시작

* 연결 타입의 서비스 (bound service)

= 액티비티가 bindService()를 호출하여서 서비스를 시작

 

서비스는 애플리케이션에 의해 실행됨

시작된 서비스는 다른 애플리케이션으로 넘어가도 배경에서 실행됨

서비스는 인텐트 객체를 이용해 시작

매니패스트에 공용으로 선언해야 함

서비스는 새로운 스레드로 생성 X

 

# IntentService 클래스

* Service 클래스

: 만약 서비스에서 하는 작업이 상당히 시간을 많이 요구하는 작업이라면 서비스 안에서 새로운 스레드를 생성하는 것이 좋다

* IntentService 클래스

: 이 클래스는 시작 요청이 들어올 때마다 이것을 처리하는 작업 스레드를 별도로 생성한다.

 

# 연결타입의 서비스

연결된 서비스는 클라이언트/서버 모델에서 서버의 역할을 한다

일정한 요청을 보내고 요청의 결과를 컴포넌트를 통해서 전송받음

시작타입과는 다르게 백그라운드에서 무한히 실행X

 

# 서비스 인터페이스를 정의하는 3가지 방법

Binder클래스 확장하기 : 애플리케이션내에서 백그라운 작업을 수행할 때

Messager 클래스 사용하기 : 프로세스간의 통신을 구현할 때

Using AIDL

 

# 방송 수신자

안드로이드 장치에서는 많은 이벤트들이 발생

이벤트르 받는 컴포넌트가 방송 수신자

배터리가 부족하거나 네트워크가 끊겼을 때 등 이벤트를 발생하여 사용자에게 알려줌

매니패스트 안에 정의

# 중요한 방송

액션 설명
ACTION_TIME_TICK 1분마다 보내진다.
ACTION_TIME_CHANGED 현재 시각 설정
ACTION_TIMEZONE_CHANGED 시간대 변경
ACTION_BOOT_COMPLETED 부트 완료
ACTION_PACKAGE_ADDED 패키지 추가
ACTION_PACKAGE_CHANGED 패키지 변경
ACTION_PACKAGE_REMOVED 패키지 삭제
ACTION_MEDIA_MOUNTED 외부 저장 장치 마운트 완료
ACTION_MEDIA_REMOVED 외부 저장 장치 제거
ACTION_BATTERY_CHANGED 배터리 상태 변경
ACTION_BATTERY_LOW 배터리 저충전
ACTION_POWER_CONNECTED 전원 연결
ACTION_POWER_DISCONNECTED 전원 연결 해제
ACTION_SHUTDOWN 파워 오프

 

# 방송 수신자의 등록방법

매니패스트 파일에서 선언 – 최신버전에서는 동작 하지 않음. 배터리 소모가 많기 때문

자바 코드에서 동적으로 등록 – 최신버전에서는 이 방법 사용

 

 

'Programming > Mobile' 카테고리의 다른 글

[안드로이드스튜디오] 인텐트  (0) 2021.09.19
[안드로이드스튜디오] 액티비티로부터 결과받기  (0) 2021.09.12
[안드로이드스튜디오] 여러페이지로 구성된 애플리케이션 작성  (0) 2021.09.12
[안드로이드스튜디오] 명시적 인텐트 - 두개의 액티비티로 이루어진 애플리케이션  (0) 2021.09.11
[안드로이드스튜디오] 액티비티  (0) 2021.09.11
'Programming/Mobile' 카테고리의 다른 글
  • [안드로이드스튜디오] 인텐트
  • [안드로이드스튜디오] 액티비티로부터 결과받기
  • [안드로이드스튜디오] 여러페이지로 구성된 애플리케이션 작성
  • [안드로이드스튜디오] 명시적 인텐트 - 두개의 액티비티로 이루어진 애플리케이션
min_sol
min_sol
  • min_sol
    비글개발연구소🐾
    min_sol
  • 전체
    오늘
    어제
    • 분류 전체보기 (281)
      • Programming (128)
        • Algorithm (52)
        • JAVA (40)
        • GIS (5)
        • PyQt (10)
        • C# (11)
        • Mobile (6)
        • AI (4)
      • Backend (38)
        • Spring (16)
        • JSP (11)
        • Network (5)
      • Frontend (29)
        • React (11)
        • Vue (13)
        • Next.js (4)
      • Database (10)
        • PostgreSQL (1)
        • Oracle (8)
        • Elasticsearch (1)
      • DevOps (8)
        • Linux (7)
        • Mac (1)
      • Tools (32)
        • IntelliJ (1)
        • VSCode (1)
        • GitHub (10)
        • RPA (20)
      • Security (9)
      • etc (22)
        • ERROR (5)
        • 세미나 | 교육 (11)
        • 자격증 (1)
        • 일상 (2)
        • 2021 (2)
  • 인기 글

  • 태그

    코딩테스트
    Java
    VUE
    명품자바에센셜
    자동화
    계산기
    자바
    연습문제
    자료구조
    스윙
    알고리즘
    RPA
    PyQt
    jsp
    PyQt5
    vue.js
    이클립스
    spring
    백준
    생능출판
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
min_sol
[안드로이드스튜디오] 서비스와 방송수신자
상단으로

티스토리툴바