private void setAlarm(int alarmId,int h,int m){
Intent intent = new Intent(ServiceClass.this,Manual.class);
PendingIntent sender = PendingIntent.getActivity(mContext, alarmId, intent, PendingIntent.FLAG_CANCEL_CURRENT);
mManager = (AlarmManager)getSystemService(ALARM_SERVICE);
calendar.set(Calendar.HOUR_OF_DAY, h);
calendar.set(Calendar.MINUTE, m);
calendar.set(Calendar.SECOND, 0);
mManager = (AlarmManager)getSystemService(ALARM_SERVICE);
mManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 0, sender);
Log.e(TAG, "해당 알람번호 : "+alarmId +"|| 알람 설정 시간 : " + calendar.getTime().toString());
}
위와 같이 알람매니저를 사용하여 알람을 등록하였는데요
setRepeating을 사용하여서 하니 제시간에 intent로 넘어가지 않고,
몇초간 이후 intent로 사용이 되더라구요.
찾아보니 SDK에 따라 다르게 설정해줘야한다고 하는데...
sdk 19부터는 setexact, 21부터는 setalarmcolck메서드를 사용해야한다고 하더라구요..
(http://www.masterqna.com/android/56133/alarmmanager-%EC%95%8C%EB%9E%8C%EC%9D%B4-%EC%A0%95%ED%99%95%ED%95%9C-%EC%8B%9C%EA%B0%84%EC%97%90-%EA%B9%A8%EC%96%B4%EB%82%98%EC%A7%80-%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4?show=56133#q56133)
현재 테스트 스마트폰은 안드로이드 6.0(API 23)이고요.
Project Build Target은 4.1.2(api 16)입니다.
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.JELLY_BEAN)
SDK에 따라 따로 해줄려고 해도 Build.version_codes에 젤리빈까지밖에 뜨지가 않더라구요...
해결 방법이 있는가요?