アプリケーションがバックグラウンドになっている間、接続をしばらく開いたままにし、新しい通知メッセージについてユーザーに警告するためにローカル通知を使用するIMアプリケーションを開発しています。アプリケーションがアクティブになったときにローカル通知を閉じる
以前は、iOS 4では、-[UIApplication presentLocalNotificationNow:]
を使用して新しいローカル通知を提示する前に-[UIApplication cancelAllLocalNotifications]
が呼び出されました。この方法では、常に最新の通知のみが画面に表示されました。
iOS 5では通知センターが導入されて以来、このソリューションはもう最後の1つのメッセージを表示したいので、もう受け入れられません。また、アプリケーションがアクティブになったときにすべてのローカル通知アラートを閉じたいと考えています。どうすればいいのですか?私はある時点で-[UIApplication cancelAllLocalNotifications]
と呼ぶべきだと思うが、どこか分からない。助けていただければ幸いです。
私は、 ' - [UIApplication cancelAllLocalNotifications]'を 'apllicationWillEnterForeground:'と 'applicationDidBecomeActive:'メソッドの両方から呼び出そうとしましたが、望む結果がありませんでした。 アプリケーションが複数の着信メッセージを受信し、ローカル通知アラート(バナーではない)を表示すると、これらのアラートは互いの上に配置されます。最新のアラートからアプリケーションを起動すると、以前のアラートは短時間または永遠に表示されます。以前のアラートをユーザーが表示しないように却下したい – sgosha