반응형
LinkedIn 개발자로 성장하면서 남긴 발자취들을 확인하실 수 있습니다.
Github WWDC Student Challenge 및 Cherish, Tiramisul 등 개발한 앱들의 코드를 확인하실 수 있습니다.
개인 앱 : Cherish 내 마음을 들여다보는 시간, 체리시는 디자이너와 PM과 함께 진행 중인 1인 개발 프로젝트입니다.
10년 후, 20년 후 나는 어떤 스토리 텔러가 되어 있을지 궁금하다. 내가 만약에 아직 조금 더 탐구하고 싶은 게 있고, 궁금한 게 있다면, 그게 설사 지금 당장의 내 인생에 도움이 안 되는 것 같더라도 경험해보자. 그 경험들을 온전히 즐기며 내 것으로 만들고, 내 일에 녹여내고... 그러다보면 그 점들이 모여 나란 사람을 그려내는 선이 될 테니까.

Recent Posts
Recent Comments
Total
관리 메뉴

꿈꾸는리버리

Ourday - Widget이 하루가 지나도 갱신이 안되는 문제 해결 본문

오뚝이 개발자/안드로이드

Ourday - Widget이 하루가 지나도 갱신이 안되는 문제 해결

rriver2 2025. 6. 30. 21:12
반응형

🔧 문제 상황

https://www.threads.com/@ou._.rivery/post/DLMpM8xRYQV?hl=ko

출시하고 2-3일부터 이렇게 위젯이 갱신이 안된다는 보고를 받았다.

분명 위젯을 만들 때 updatePeriodMillis으로 갱신이 되도록 설정을 했었는데 말이죠....?! 우선 시험 주간이라 죄송하다는 멘트와 함께 문제가 되는 기기의 원인을 찾기 위해서 질문들 받았다.

문제가 보고된 유저분들의 답변

iOS의 경험상 특정 버전 이상인 경우 문제가 발생했을 거라 생각했다.

💬 고민 Point

좀 더 알아보니 Android 12 (API 31) 이상부터는 배터리 최적화 및 백그라운드 제한 정책이 강화되어 updatePeriodMillis 값이 30분(1800000ms) 미만이면 거의 무시된다고 한다. 그래서 문의가 왔던 S23, S24, Z플립4/5 등은 모두 Android 13~15이므로 갱신이 되지 않았던 것이었다.

 

그래서 고민을 해봤다.

 

1. updatePeriodMillis을 그대로 사용하되, 30분마다 업데이트를 하도록 변경

이럴 경우에는 위젯이 정확히 매 시 정각이나 30분 단위에 딱 맞춰서 갱신되는 것이 아니라, 사용자가 위젯을 설치하거나 디바이스가 재부팅된 시점부터 30분 간격으로 갱신이 시작된다.

즉, 예를 들어 사용자가 오전 10시 17분에 위젯을 추가했다면, 그때부터 30분 주기로 (10:47, 11:17, 11:47, ..) 갱신되는 방식

따라서 12시 29분..이 되어야 디데이 날짜가 올라가는 문제가 발생할 수 있다.

 

2. updatePeriodMillis가 아닌 다른 방법을 찾아 자정에만 갱신을 하도록 구현하기

 

항상 그랬듯 사용자가 편하기 위해서는 개발자가 더 많이 개발해야 한다.

 

 

그래서 2번을 택했고 구현을 하게 되었다.

 

Strategies to Refresh Android Widgets

In native Android applications, widgets are very popular. They provide a way to interact with users without actually launching the…

medium.com

 

 

How to reliably update widgets on Android | Arkadiusz Chmura

The default solution with android:updatePeriodMillis doesn’t always work.

arkadiuszchmura.com

 

이 블로그들에서 보면 아는 것처럼, 또 공식문서에서 나와 있는 것처럼 WorkManager라는 녀석을 쓰게 되었다.

 

WorkManager로 해결하기로 했다.

 

앱 아키텍처: 데이터 영역 - WorkManager로 작업 예약 - Android 개발자  |  App architecture  |  Android Devel

데이터 영역 라이브러리에 관한 이 앱 아키텍처 가이드를 통해 지속적인 작업 유형과 기능 등을 알아보세요.

developer.android.com

 

WorkManager  |  Jetpack  |  Android Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. WorkManager WorkManager API를 사용하면 안정적으로 실행해야

developer.android.com

 

 

 

 

반응형
Comments