Android 에서 알 람 을 사용 하 는 방법 소결
안 드 로 이 드 에 서 는 알 람 매니저 를 통 해 알 람 을 설정 할 수 있 습 니 다.지정 한 시간 에 서 비 스 를 시작 하여 사건 을 처리 합 니 다.
예 를 들 어 몇 시간 마다 네트워크 데 이 터 를 끌 어 내 거나 매일 8 시 에 사용자 에 게 알 리 는 등 이다.
AlarmManager 를 사용 할 때 다음 과 같은 몇 가지 점 을 주의 하면 이 기능 을 더욱 잘 사용 하 는 데 도움 이 될 것 입 니 다.
촉발 시간 랜 덤 증가
알 람 이 실행 하 는 작업 에 네트워크 요청 이 포함 되 어 있 으 면 이 트리거 시간 에 무 작위 성 을 추가 하 는 것 을 권장 합 니 다.
아침 8 시 에 일기 예 보 를 조회 하 는 네트워크 요청 을 한다 고 가정 하면 무 작위 성 을 증가 하지 않 습 니 다.그러면 8 시 이 시각 에 서버 는 대량의 요청 을 받 아 서버 의 압력 이 너무 커서 장치 가 충분 하면 서버 가 정상적으로 서 비 스 를 제공 하지 못 할 수도 있다.
따라서 랜 덤 성 을 증가 하고 이 요청 들 을 서로 다른 트리거 시간 으로 분산 시 킵 니 다.예 를 들 어 일부 사용자 의 트리거 시간 은 7 시 이 고 일부 사용자 의 트리거 시간 은 8 시 입 니 다.필요 에 따라 더 많은 무 작위 시간 구간 으로 분산 시 킬 수 있다.
이렇게 하면 이러한 네트워크 요청 시간 을 효과적으로 놓 치고 서버 의 압력 을 늦 추어 서버 가 더욱 빠 른 서 비 스 를 제공 할 수 있다.
setRepeating()대신 setInexactRepeating()사용
setInexactRepeating()
을 사용 할 때 시스템 은 같은 시간 에 여러 개의 알 람 을 터치 하여 장치 의 각성 횟수 를 효과적으로 줄 일 수 있다.안 드 로 이 드 4.4 부터 시작 되 기 때문에 알 람 트리거 시간 은 더 이상 정확 하지 않다.
따라서 전력 소비량 을 줄 이기 위해 서 는 정확 한 시간 촉발 이 꼭 필요 하지 않 은 상황 에서 사용
setInexactRepeating()
을 권장 한다.ELAPSED_REALTime 과 RTC
ELAPSED_REALTIME 은 시스템 을 기반 으로 지금까지 시 작 된 시간 이기 때문에 ELAPSEDREALTime 은 앞으로 얼마나 걸 릴 지 알 람 을 설정 하 는 데 적합 합 니 다.
예 를 들 어 30 분 후에 촉발 되 기 를 바 라 는 등 이다.
alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
AlarmManager.INTERVAL_HALF_HOUR,
AlarmManager.INTERVAL_HALF_HOUR, alarmIntent);
//
alarmMgr.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 60 * 1000, alarmIntent);
RTC 는 현재 시간 대의 정확 한 시간 을 기반 으로 하기 때문에 어느 날 까지 정확 한 시간 에 촉발 해 야 하 는 알 람 을 설정 하 는 데 적합 하 다.예 를 들 어 오후 2 시 에 촉발 되 기 를 바 랍 니 다.
// calendar 14
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 14);
// ,
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
wakeup 버 전과 비 wakeup 버 전의 차이 점wakeup 버 전:
총결산
이상 은 이 글 의 모든 내용 입 니 다.본 논문 의 내용 이 안 드 로 이 드 개발 자 들 에 게 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 십시오.저희 에 대한 지원 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.