PendingIntent
및 AlarmManager
을 사용하여 알람 시계 앱을 만들고 있습니다. PendingIntent를 취소하려면 정확히 다시 생성해야합니다. 내 앱에는 다른 알람 시계 앱과 마찬가지로 알람이 켜지거나 꺼지는 스위치가있는 알람 목록이 있습니다. 끌 때, 나는 현재 PendingIntent를 다시 다음과 같은 사용을 취소 : 코드의나중에 취소 할 수 있도록 PendingIntent를 객체에 저장하는 것은 나쁜 습관입니까?
Intent intent = new Intent(context, MyBroadcastReceiver.class);
String id = this.getId().replaceAll("[^0-9]+", "");
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, id, intent, 0);
alarmIntent.cancel();
처음 3 줄을 내가 필요하다고 생각보다. 알람을 토글 할 때, 알람의 다른 많은 세부 사항과 함께 id가 포함 된 사용자 정의 알람 객체에 액세스 할 수 있습니다. 새 알람을 만들 때 새로 생성 된 PendingIntent를 알람 객체에 저장하면 알람을 생성하는 데 사용 된 PendingIntent에 액세스 할 수 있으며 다음과 같이 1 행에서 검색하고 취소 할 수 있습니다.
this.getPendingIntent().cancel();
인 텐트를 다시 만들거나 ID를 가져 오거나 앞에서 설명한 코드에서 PendingIntent를 다시 만들 필요가 없습니다. 이것은 궁극적으로 시간과 자원을 절약 할 수 있지만 (좋은 것은 아니지만) 두 가지 질문이 있습니다.
1) PendingIntent를 객체에 저장하고 나중에 다시 생성하는 대신 문제가 있습니까? 그것은 솔직한 대답처럼 보이지만 전에는 아무도 보지 못했습니다.
2) 내가 모르는 PendingIntent를 재현 할 때 이점이 있습니까?
감사합니다.
도움 주셔서 감사합니다. 그래서 다른 사람에게 메시지를 보내는 방법을 모르겠지만 내 다른 질문을 볼 수 있습니까? https://stackoverflow.com/questions/45381092/how-to-stop-alarm-from-executing-after-intend-has- 접수 된 안드로이드 – Michael