안드로이드 1분 주기, 특정 주기로 계속 동작. 스케줄러, Quartz 같은 효과 방법
목표
spring에서 Quartz를 사용했었는데, 안드로이드에선 사용할 수 없었음. 안드로이드 자체 방식으로 구현필요
조건
웹개발자로서.. 안드로이드는 잘 못함...
안드로이드 백엔드 (화면 꺼졌을 시에도 ) 계속 가동하는 방법
정보
1. 배치성 작업은 AlarmManager, JobScheduler, workmanager 가 존재
이 차이점을 검색하면 잘 나오겠지만 쉽게 알기 힘들었음..
버전 별로 지원하는게 다르다. 버전에 맞게 사용했어야함.
그래서 최신인 workmanager 로 사용하려고 했는데, Docs를 보니 최소단위가 15분임. 아마 JobScheduler 이것도 15분으로 본것 같음..(workmanager 확실한데.. JobScheduler는 다시 찾아봐야함 )
나는 1분 단위가 필요하여 결국 AlarmManager를 쓰게되었다
2. AlarmManager 도 문제가 있음... 테스트시 30초 단위는 잘 동작하지만.. 폰이 대기화면으로 돌아가고 백에서 돌면 5분에 한번씩 동작하게 된다..
- https://wooyeol.github.io/2019/03/19/Android-Repeat-Background-Service/
결국 다른방법 찾음.
3. 일단 아래 두 주소는 죽지않는 서비스를 만드는게 목표다 .
https://forest71.tistory.com/185
지인이 첫번째가 쉽게 잘 되어있다고 하여 첫번째 포스트 내용과 2번에 쓴 포스트와 결합했다. 결합하는 건.. 개인의 몫..
서비스가 죽지않고.. notification으로 잘 뜨고 하긴하는데 이것도 결국 AlarmManager 사용하는 방법이라 나중엔 5분마다 실행됨..
두번째 포스트가 정리가 깔끔하고 git 소스도 있고, 잘 작동함. 1분마다 스케줄러 성공했음
끝