본문으로 바로가기

일정관리 앱에 푸시알림 추가하기

category AndroidStudio 2020. 8. 12. 22:38

일정관리 앱을 만들던 중 일정에 해당하는 날짜의 특정 시간에 푸시알림 기능을 추가하기 위해 AlarmManager,Receiver, Service를 사용하게 되었다.

 

1. 설정

 

<Manifests>

1. 첫 번째 퍼미션은 인터넷 사용권한. 2. 두 번째 퍼미션은 진동을 위한 권한. 3. 세 번째 퍼미션은 잠들어있는(?) 휴대폰을 깨우기 위한 권한 4. 네 번째 퍼미션은 핸드폰을 껏다가 킨 후에도 알림이 적용될 수 있도록하는 권한

 

사용할 Receiver와 Service를 등록해준다.

 

2. 핵심 코드

calendar파라미터는 해당 일정의 날짜와 알림을 울릴 시간정보를 받아오고 AlarmManager에 시간정보와 호출할 receiver를 가진 PendingIntent를  등록한다. 
AlarmManager에 등록된 시간이 되면 onReceive()가 실행되어 Service를 호출
onStartCommand에서 바로 실행하는 것이 아닌 알람기능을 수행하는 코드를 다른 스레드로 구성했다. 

 

코드 실행결과 정해진 시간에 푸시알림이 도착하는 것을 확인했다. 하지만 기기가 Doze모드에 있을 때도 알림이 도착하는지는 좀 더 테스트해봐야 알 것 같다. 알림이 도착하는 것을 확인하기 위해 시간을 정해놓고 기다리기를 반복하다보니

개발 시간이 너무 많이 늘어나는 것 같다...

 

'AndroidStudio' 카테고리의 다른 글

[Android] Coroutine Builder - Async  (0) 2022.06.01
[Android] Dispatchers.Main과 MainThread  (0) 2022.06.01
[Android]코틀린 Coroutine  (0) 2022.05.31
AndroidStudio, 잠자기 모드  (0) 2020.08.13