본문 바로가기

안드로이드/Schedule

WorkManager 앱 종료 상황에서 동작

WorkManager는 로그인 상태에서 동작하고 비회원일 땐 동작하지 않아야 하기에 로그인 성공한 시점에 한 번 등록하게 구현하였다. 다만 테스트를 위해 Application에서 WorkManager를 등록하여 테스트를 하던 도중 발생한 문제이다.

 

처음 나의 예상은 앱을 실행 > 특정 시간에 작업 수행이었고 앱을 킨 상태에서는 문제 없이 동작하였다.

그러나 WorkManager를 쓰는 이유, 앱이 종료 된 상태에서도 돌아가야 한다.

 

따라서 앱을 실행하여 WorkManager에 등록 후 앱을 종료하고 트리거 시간까지 기다려보았다.

당연히 동작하지 않아서 로그를 찍어보았는데 특정 시간이 되면 다시 WorkManager를 등록하여 기존의 작업이 취소되는 문제가 있었다.

 

분석

여기서 유추할 수 있는 부분은 앱이 종료된 상태에서 WorkManger가 트리거 시간에 작업을 수행할 때 Application을 실행한다는 것이다.

실제로 앱이 종료된 상태에서 트리거 시간이 되면 Application에서 등록할 때의 로그가 IDE에 찍혔었다.

Application에서 WorkManager 등록 > 앱 종료 > 트리거 시간 > Application 실행 > 다시 등록 > 기존 작업 취소

 

 

즉, WorkManager 등록을 Application 클래스에서 수행한다면, 따로 특정 조건이 없는 이상 다시 재등록되어 제대로 수행되지 않을 수도 있다.

'안드로이드 > Schedule' 카테고리의 다른 글

WorkManager(feat.Hilt)  (0) 2025.04.02
[안드로이드] Alarm Manager  (0) 2024.01.17