버전별로 알람처리 방법
int id = 999; //알람아이디값 생성
Intent intent = new Intent(AlarmAddActivity.this, AlarmRecever.class);
//알람이 지정되면 받는 브로드 캐스트 리시
intent.putExtra("idx", id);
PendingIntent sender = PendingIntent.getBroadcast
(AlarmAddActivity.this, id, intent,PendingIntent.FLAG_UPDATE_CURRENT);/
/지연된 인텐드, 알람이 울리면 인텐드 값을 전달한다.
String alamrTime = "2017-11-20 08:00:00";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
.parse(alamrTime); // 알람 등록할 시간을 지정해준다
long aTime = System.currentTimeMillis();
long bTime = date.getTime();
//하루의 시간을 나타냄
long interval = 1000 * 60 * 60 * 24;
if(aTime>bTime){ //알람 설정시간이 현재시간 보다 적으면 24후에 알람 설정
bTime += interval;
}
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
if(Build.VERSION.SDK_INT>=23){ //버전별로 알람처리
am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, bTime, sender);
}else{
if(Build.VERSION.SDK_INT>=19){
am.setExact(AlarmManager.RTC_WAKEUP, bTime, sender);
}else{
am.set(AlarmManager.RTC_WAKEUP, bTime, sender);
}
}
//휴대폰이 재 부팅되었을때 처리하려면 알람 시간및 내용을 내장 db에 저장후
BOOT_COMPLETED시 다시 불러와서 알람을 재등록한다.
//알람 반복은 AlarmRecever에서 알림 울렸을때 알람 리셋후 재 등록하면 된다.
'안드로이드' 카테고리의 다른 글
android 11 변경사항 - QUERY_ALL_PACKAGES (0) | 2021.06.29 |
---|---|
T map 길찾기 구현 (0) | 2016.06.20 |
카카오톡 로그인 , 로그인 정보 가져오기 (0) | 2016.03.03 |
glide PhotoViewAttacher 같이 사용시 주의점 (0) | 2016.03.02 |
안드로이드 네이버 로그인 (0) | 2015.10.14 |