언어/Andorid

안드로이드 1분 주기, 특정 주기로 계속 동작. 스케줄러, Quartz 같은 효과 방법

벨포트조던 2020. 7. 27.
반응형

목표

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://wendys.tistory.com/80

https://forest71.tistory.com/185

지인이 첫번째가 쉽게 잘 되어있다고 하여 첫번째 포스트 내용과 2번에 쓴 포스트와 결합했다. 결합하는 건.. 개인의 몫.. 
서비스가 죽지않고.. notification으로 잘 뜨고 하긴하는데 이것도 결국 AlarmManager 사용하는 방법이라 나중엔 5분마다 실행됨.. 
두번째 포스트가 정리가 깔끔하고 git 소스도 있고, 잘 작동함. 1분마다 스케줄러 성공했음 

 

 

 

반응형

댓글