Android/Troubleshooting
AppWidgetProvider 의 onEnable/onDisabled 가 호출되지 않을 때
parkho79
2019. 1. 11. 14:04
728x90
Android target SDK 를 Android O(API level 26) 이상으로 올린 후 기존에 잘 동작하던 widget 의 click event (pending intent) 가 동작하지 않았다.
Android O 에서 암시적 브로드캐스트(Implicit broadcast) 인텐트 제한이 적용되었기 때문이다.
암시적 브로드캐스트(Implicit broadcast) 를 묵시적 브로드캐스(Explicit broadcast) 로 변경 후 동작을 확인해보니 AppWidgetProvider 의 onEnable / onDisabled 함수가 호출되지 않았다.
- onEnable : App widget 이 처음 생성될 때 불림. 같은 위젯을 여러개 띄어도 첫 번째 위젯을 띄울 때만 호출.
- onDisabled : App widget 이 마지막으로 삭제될 대 불림.
열심히 googling 해봤지만 딱히 원하는 답을 찾지 못했다가 알아낸 사실!!!
AppWidgetProvider 의 onReceiver 에서 super 를 호출해야 해당 메소드가 호출 된다.
물론, onEnable / onDisabled 함수가 호출되지 않는 이유가 요 한 케이스는 아니겠지만 다른 설정이 이상 없을 때는 onReceiver super 를 호출했는지 확인해보자!
728x90