반응형
이번 프로젝트에서 날짜가 변경될 때 이벤트를 전달 받아 특정한 코드를 실행시켜야 하는 업무가 주어졌다.
날짜가 변경되었을 때 발생하는 이벤트는 아래와 같다.
<receiver>
android:name="{.receiverClassName}"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.DATE_CHANGED" />
</intent-filter>
</receiver>
receiverClassName 영역에 상속받은 receiver를 등록해주거나, 아니면 생성해서 registerReceiver를 이용해 등록해주면 된다.
여기서 주목해야 하는 점은
<action android:name="android.intent.action.DATE_CHANGED" />
이부분인데, 이 action이 device 기반으로 날짜가 변경되면 발생하는 이벤트이며, receiver에 이것을 등록해주므로써 이 이벤트를 받아 특정한 코드를 실행 시킬 수 있다.
다만! 제일 크리티컬한 이슈는 수동으로 날짜를 변경했을 때 이 이벤트가 발생한다는 것.
위와 같이 overide된 fun 에서 Intent를 가져와 action을 뽑고, 그 action 값이 DATE_CHANGED 인지 확인하여 이벤트 분기를 치는 것이 제일 좋다.
이 내용과는 별개로 receive는 어떻게 관리하는 것이 좋을까? 에 대한 의문이 들었다.
receiver를 따로 만들어서 관리?
동적으로 receiver를 만들고 해제하면서 관리?
걍 필요한 class에 receiver를 상속받아서 관리?
알아봐야 겠다..
반응형
'Develop > Android' 카테고리의 다른 글
Android - TYPE_STEP_COUNTER, TYPE_STEP_DETECTOR (0) | 2020.12.27 |
---|---|
Android - Google Fit. 정말 이게 Google 이라고 ? (0) | 2020.12.15 |
Android - Bluetooth 는 위치권한이 필요하다. (0) | 2020.12.14 |
Android App to App 통신에 관하여 - scheme (0) | 2020.08.05 |
Android - TextView Default Padding 조절. includeFontPadding (0) | 2019.12.27 |