Android 4.4를 실행하는 모든 기기가 정확한 반복을 실행할 수 없다는 뜻입니까?
그것은 당신의 android:targetSdkVersion
가 19 이상인 경우 set()
및 setRepeating()
같은 방법은 기본적으로 부정확 한 것을 의미한다. 정확한 알람에 사용할 수있는 setExact()
이 있으며 이전 setExact()
호출에 의해 트리거 된 작업을 처리하는 과정에서 setExact()
을 다시 호출하여 반복되는 부분을 직접 구현할 수 있습니다.
또는 내 프로젝트에서 android : targetSdkVersion = "18"을 사용하면 이러한 장치에서이를 피할 수 있습니까?
네, 이것을 피할 수 있습니다. 결국, 무언가가 당신의 핸드를 당신의 android:targetSdkVersion
을 19 이상으로 올리도록 강요 할 것입니다. 즉, 결국 위의 설명처럼 앱을 부정확 한 행동에 적용하거나 setExact()
을 사용해야합니다.
알람을 호출 할 때마다 setExact를 사용하고 시간을 업데이트하는 것이 더 좋은 방법입니까?
API 레벨 19 이전에는 setExact()
이 존재하지 않으므로 더 새로운 기기에서만 사용할 수 있습니다. android:targetSdkVersion
을 19 이상으로 설정 한 후에는 더 새로운 장치에서 setExact()
을 사용하고 이전 장치에서는 여전히 set()
또는 setRepeating()
을 사용해야합니다. 나는 여전히 android:targetSdkVersion
19 이하를 가지고있는 동안 setExact()
을 사용하는 것에 대한 어떤 이점도 인식하지 못했습니다.
이 답변을 주셔서 감사합니다. 그래서 대상을 18로 설정합니다. – KCD
@CommonsWare는 다음 setExact를 호출하기 전에 onReceive 콜백에서 이전 setexact를 취소해야합니까? Onreceive는 몇 번 두 번 호출됩니다. – NitZRobotKoder
@NitZRobotKoder :'setExact()'는 반복하지 않습니다. 이것은 단일 샷 이벤트입니다. 갱신 된 시간으로 바꾸는 것과 같이 더 이상 원하지 않는다면'cancel()'만하면됩니다. ** ** adb shell dumpsys alarm **을 사용하여 예약 된 이벤트를보고 실수로 두 가지 이유로 일정을 계획하고 있는지 판단하십시오. – CommonsWare