하루에 0.01%라도 성장하자

Develop/Android

Android - 날짜가 변경될 때 발생하는 이벤트.

뚠님 2020. 12. 15. 12:07
반응형

이번 프로젝트에서 날짜가 변경될 때 이벤트를 전달 받아 특정한 코드를 실행시켜야 하는 업무가 주어졌다.

 

날짜가 변경되었을 때 발생하는 이벤트는 아래와 같다.

 

<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에 이것을 등록해주므로써 이 이벤트를 받아 특정한 코드를 실행 시킬 수 있다.

 

다만! 제일 크리티컬한 이슈는 수동으로 날짜를 변경했을 때 이 이벤트가 발생한다는 것.

 

 

onReceive에 실행 될 내용

위와 같이 overide된 fun 에서 Intent를 가져와 action을 뽑고, 그 action 값이 DATE_CHANGED 인지 확인하여 이벤트 분기를 치는 것이 제일 좋다.

 

 

 

이 내용과는 별개로 receive는 어떻게 관리하는 것이 좋을까? 에 대한 의문이 들었다.

 

receiver를 따로 만들어서 관리?

동적으로 receiver를 만들고 해제하면서 관리?

걍 필요한 class에 receiver를 상속받아서 관리?

 

알아봐야 겠다..

반응형