고정 된 간격으로 특정 작업을 실행해야하는 앱을 만들려고합니다. 많은 연구와 노력을 한 후 서비스 내에서 타이머를 실행하는 대신 메모리 및 배터리 사용 효율 때문에 AlarmManager 클래스를 사용하는 것이 더 낫다고 생각했습니다.AlarmManager 클래스를 사용하여 일정 간격으로 작업을 올바르게 실행하는 방법은 무엇입니까?
제가 지금 문제가되는 부분이 있습니다.
하나는 이전 실행에서 생성 된 알람 객체를 취소 할 수 있도록 액세스해야합니까?
Intent intent = new Intent(getActivity(), MyService.class);
PendignIntent pintent = PendingIntent.getService(getActivity(), 0, intent, 0);
AlarmManager alarm = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime() +
20000, AlarmManager.INTERVAL_FIFTEEN_MINUTES, pintent);
알람이 설정되었는지 알 수있는 방법이 있지만 알람 자체를 줄 수는 없습니다.
boolean alarmUp = (PendingIntent.getService(getActivity(), 0, new Intent(getActivity(), MyService.class), PendingIntent.FLAG_NO_CREATE) != null);
if(alarmUp){
//How to cancel the alarm
}else {
Toast.makeText(getActivity(), "Alarm not running", Toast.LENGTH_SHORT).show();
}