2

내 앱이 백그라운드에서 실행 중이며 동시에 2 개의 현지 알림을 받았다고 가정 해 보겠습니다. Notification1의 Alert1이 표시되면 Alert1의 맨 위에 Notification2의 Alert2가 표시됩니다. Alert2에 대해 '보기'를 탭하면 내 앱이 포 그라운드로 들어가고 didReceiveLocalNotification이 알림 2에 호출됩니다. 모든 것이 모두 좋습니다.앱이 실행 중이 아닐 때 실행되지만 앱이 실행 중일 때 계속 알림 알림 처리

그러나 Alert1은 계속 표시되고 있습니다 (닫히거나 보지 않았으므로). '보기'를 탭하면 아무런 반응이 없으며 예상대로 알림 1에 대한 didReceiveLocalNotification이 호출되지 않습니다.

는 방법이되는 다음 중 하나를

  1. 지우기 경고 Alert1가 표시되지 않도록 응용 프로그램은 Alert1을 누를 때부터, "보기"에 대한 탭을 처리
  2. Alert2
  3. 에 대한 전경에 들어갈 때 didReceiveLocalNotification을 호출하지 않았습니다.

고마워요!

+0

두 개의 경고가 동시에 표시됩니까? 질문에 스크린 샷을 추가 할 수 있습니까? –

+0

두 번째 경고가 다른 경고 위에 표시되므로 하나의 경고 만 표시되지만 나머지 하나는 여전히 아래에 있습니다. 첫 번째 경고에서 '보기'를 탭하면 didReceiveLocalNotification이 호출되고 앱이 포 그라운드로 입력됩니다. 첫 번째 경고가 사라지고 두 번째 경고가 표시됩니다. – Woogie

+0

'cancelAllLocalNotifications'를 호출하면 알림이 이미 시작된 경우에도 현재 표시된 알림이 해제됩니다. 로컬 및 푸시 알림 프로그래밍 가이드에 설명되어 있습니다. _ 응용 프로그램 개체에서 cancelLocalNotification :을 호출하여 특정 예약 알림을 취소 할 수 있으며 cancelAllLocalNotifications를 호출하여 예약 된 알림을 모두 취소 할 수 있습니다. 이 두 가지 방법 모두 현재 표시된 알림 경고를 프로그래밍 방식으로 닫습니다. _ 따라서 'cancelAllNotifications'가 필요하고 현재 예약 된 알림을 다시 예약해야합니다. – Woogie

답변

2

으로 전화를 걸면 알림이 이미 시작된 경우에도 현재 표시된 알림이 취소됩니다.

는 그것은 Local and Push Notification Programming Guide 번 언급 한 다음 응용 프로그램 개체에, 당신은 cancelAllLocalNotifications를 호출하여 모든 예약 알림을 취소 할 수 있습니다

당신은 cancelLocalNotification를 호출하여 통지를 예정 특정을 취소 할 수 있습니다. 또한 이러한 메서드는 프로그래밍 방식으로 현재 표시된 표시를 무시합니다. 알림.

따라서 cancelAllNotifications이 필요하며 현재 예약 알림을 다시 예약해야합니다. cancelLocalNotification을 시도했지만 이미 해고되었으므로 scheduledLocalNotifications 배열에 더 이상 존재하지 않으므로 알림에 대한 참조가 없습니다.

관련 문제