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

안드로이드 자정 24시에 값 리셋 방법 디바이스마다 다른 이유??

0 추천
public class DateReceiver extends BroadcastReceiver {
	private static final String TAG = "DateReceiver";
    @Override
    public void onReceive(Context context, Intent intent) {
    	Log.i(TAG, "날짜가 변경되었습니다.");
    	SharedPreferenceUtil.putSharedPreference(context, "late_value1", null);
    	SharedPreferenceUtil.putSharedPreference(context, "late_time_h1", null);
    	SharedPreferenceUtil.putSharedPreference(context, "late_time_m1", null);

    
    }
    
}
        <receiver
        	android:name=".DateReceiver"
        	android:enabled="true"
        	android:exported="true" >
        	<intent-filter>
            	<action android:name="android.intent.action.DATE_CHANGED" />
        	</intent-filter>
     	</receiver>

위와 같이 구성하였습니다.

갤럭시 노트5(안드로이드6.0)는 낮 12시와 밤 12시 둘다 값이 리셋이 되더라구요...

갤럭시 갤럭시 A7(안드로이드6.0)과 베가레이서(안드로이드4.2.2)는 자정 12시에만 값이 리셋이 되더라구요..

왜 디바이스 마다 다른 이유가 무엇인가요??

만약 android.intent.action.DATE_CHANGED로 되지 않으면 무엇을 사용해야하나요?

정각 자정 24시에 값이 리셋이 되어야해서요...

쿠쿠부다스 (6,470 포인트) 님이 2017년 3월 20일 질문

1개의 답변

0 추천
 
채택된 답변
시스템에서 보내는 브로드캐스트라 이벤트를 보내주는 시스템 자체가 문제가 있는것이라면 앱쪽에서는 할수 있는 방법이 없습니다.

시점상 1분정도가 허용이 되는 범위라면 저같으면 TIME_TICK 사용해서 실제 시스템 날짜를 비교하도록 할거 같습니다.

TIME_TICK이 1분 주기로 이벤트가 발생하는것이라 1분마다 지금이 자정이 넘었는지 안넘었는지 확인하도록 하면 되지 않을까 싶은데용.
Development Guy (70,570 포인트) 님이 2017년 3월 20일 답변
쿠쿠부다스님이 2017년 3월 20일 채택됨
1분마다 체크할경우에는 배터리 소모가 많을거같은데...
직접 사용해보신 결과로는 배터리 소모가 많던가요??
...