Nuke Olaf - Log Store
[Android] 안드로이드 - Alarm 알람기능 본문
내가 지금까지 너무 서비스라는 개념에 갇혀서 생각했던것 같다. 생각이 편협적이었던 것 같다.
지금까지 앱을 종료한 뒤 일정 시간이 지나면 노티 알림을 띄워서 사용자에게 앱 재방문을 권유하도록 하는 기능 구현에대해 공부했다. 노티 알림을 무조건 서비스를 사용해서 띄우려고 하고 있었는데, oreo 버전 이후로 서비스 사용에 있어서 제약이 많이 생겨서인지는 확실히 잘 모르겠지만, 서비스를 이용해 원하는 시간에 노티 알람을 보내는것에 계속 실패했다. 그 이유는 앱의 프로세스를 종료하면 서비스도 무조건 같이 죽기 때문이었다. Immortal 서비스 등 죽지않는 서비스에 대해서 살펴보던 중, 앱을 종료해도 죽지 않게 할 수 있는 foreground 서비스라는 것에 대해 알게 되었는데 그건 내가 원하는 알림 기능의 구현과는 약간 괴리가 있었다. 정말 찾다 찾다 안되던 도중 나의 사고 과정이 너무 편협했다는 사실을 알게되었다. notification 알림도 어찌보면 하나의 알람이지 않을까? 라는 생각이 불현듯 들었다.
그렇다 !!! 내가 원하는 시간에 알람 또는 알림(노티)을 보내는 기능은 알람앱과 비슷하다는 것을 간과하고 있었다!!!!
https://developer88.tistory.com/83
안드로이드에서 Alarm 은, 안드로이드 시스템의 AlarmManager 에게 알람기능을 부탁하여 실행되도록 한다.
이 AlarmManager 에게 어떤 receiver 를 호출할지에 대한 intent 를 가지고 있는 PendingIntent 와 얼마나 delay 된 후 실행시킬지를 알려주어서 set을 해준다고 한다.
Alarm 이 set되면, 정해진 시간에 AlarmManager 가 receiver 에게 boadcast 해주고, receiver 가 이를 받아서 service를 호출하여 알람기능을 실행시킨다.
AlarmManager 라는 것에 대해서는 이제 알게되었으니, 여기에 대해 더 공부해보고 적용하면 될 것 같다.
'Android' 카테고리의 다른 글
[Android] 안드로이드 - 포그라운드 서비스와 백그라운드 서비스의 차이 (0) | 2019.12.06 |
---|---|
[Android] 안드로이드 - 서비스와 다른 컴포넌트끼리의 통신 (0) | 2019.12.04 |
[Android] bindService 의 다양한 사용사례 (0) | 2019.12.04 |
[Android] 안드로이드 - background 서비스와 foreground 서비스의 차이점 (1) | 2019.12.03 |
[Android] 안드로이드 - 서비스를 사용하는 방법에 대한 정리 (0) | 2019.12.03 |