본문 바로가기
안드로이드 자바

[Android][Java] 부팅/재부팅 시 실행되는 서비스 만들기

by teamnova 2023. 4. 11.
728x90

 

개발을 하다 보면 부팅 혹은 재부팅 될 때 실행되는 컴포넌트를 만들어야 할 때가 있습니다. 

 

대표적으로 알람이나 채팅 같은 경우를 들 수 있겠습니다. 

 

오늘은 부팅/ 재 부팅 시 실행되는 서비스를 만들어 주겠습니다. 

 

오늘 포스팅은 이전 서비스이해를 위한 예제에 추가로 작성하겠습니다. 

 

다음 링크된 포스팅을 우선 확인해 주세요 

https://stickode.tistory.com/736

https://stickode.tistory.com/749

1.BOOT_COMPLETED 수신 권한 추가

 

부팅이 될때 앱은 안드로이드로 부터 이 시스템이 부팅되었다 라는 알림을 받아야 합니다. 
이를 위해 부팅이 완료 되었음을 수신할 수 있는 권한을 추가해 줍니다. 

 AndroidManifest.xml 에 다음과같은 권한을 추가해 줍니다. 

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>

2. Receiver 에 intent filter 적용시켜 주기 

 마찬가지로 AndroidManifest.xml 에서

이전 예제에서 작성해주었던 MyBroadcastReceiver 에 부팅을 감지하는 인텐트 필터를 작성해 줍니다. 

<receiver android:name=".MyBroadcastReceiver"
    android:exported="true">
    <intent-filter>

        <action android:name="android.intent.action.BOOT_COMPLETED"></action>

    </intent-filter>

</receiver>

 

이제 해당 프로젝트를 다시한번 실행 시킨뒤 가상디바이스를 다시 재부팅 해 보면

정상적으로 서비스가 다시 실행되는것을 확인할 수 있습니다.