마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

최근 안드로이드 버전에서 date가 변경된 것을 브로드캐스트로 감지하는 방법

0 추천

ACTION_DATE_CHANGED로

서비스에서 등록을 하고,

날이 변경되면 값을 리셋을 시켰는데

ACTION_DATE_CHANGED가 작동이 되지 않아서 이렇게 글을 올립니다.

임시적으로 안드로이드 폰에서 시간을 11:59로 놔두고 12:00되면 자동으로 날이 변경되었으니

로그캣에 날짜가 변경되었다고 뜰것인데.

뜨지 않아서 이렇게 글을 올립니다.
 

public class DeviceEventReceiver extends BroadcastReceiver {
    private static final String TAG = "DeviceEventReceiver";
    @Override
    public void onReceive(Context context, Intent intent) {
        if (Intent.ACTION_DATE_CHANGED == intent.getAction()) {
            //값들 리셋
            Log.i(TAG, "날짜가 변경되었습니다.");

            SharedPreferenceUtil.putSharedPreference(context, "late_value1", null);
            SharedPreferenceUtil.putSharedPreference(context, "late_time_h1", null);
            SharedPreferenceUtil.putSharedPreference(context, "late_time_m1", null);
            
        }
    }
}


Service
 

private BroadcastReceiver mReceiver;

public void onCreate() {
    IntentFilter date = new IntentFilter(Intent.ACTION_DATE_CHANGED);
    registerReceiver(mReceiver, date);
}

public void onDestroy() {
    unregisterReceiver(mReceiver);
}


 

Manifest
 

<receiver android:enabled="true" android:exported="false" android:label="DeviceEventReceiver" android:name="healthall.company.cabinet.DeviceEventReceiver">
           <intent-filter>
               <action android:name="android.intent.action.DATE_CHANGED">
               </action>
           </intent-filter>
</receiver>

 

쿠쿠부다스 (6,470 포인트) 님이 2017년 2월 23일 질문
쿠쿠부다스님이 2017년 2월 23일 수정
질문글을 쓰실 때는 코드를 어떻게 짰는지, 테스트는 어떻게 진행했는지 같이 올리세요. 이런 질문에는 '원래 안되는 게 아니라면 코드를 잘 못 짰거나, 폰이 오류 입니다' 밖에 답변을 할 수 없습니다.
한번 다시 검토 부탁드립니다.
문제가 될지 안될지는 모르겠으나 지금 BroadcastReceiver 를 동적 정적 다 가져다가 쓰고 계신데 Service에서 registerReceiver 하셨으믄 manifest에 저렇게 적을 필요는 없어용. 이 부분도 확인 해보셔요.
질문 자주 하시는데, http://www.masterqna.com/android/1 이 글도 읽어보세요.
한번 테스트 해봐야겠네요 감사합니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...