2011-10-20 17 views
1

アプリケーションがバックグラウンドになっている間、接続をしばらく開いたままにし、新しい通知メッセージについてユーザーに警告するためにローカル通知を使用するIMアプリケーションを開発しています。アプリケーションがアクティブになったときにローカル通知を閉じる

以前は、iOS 4では、-[UIApplication presentLocalNotificationNow:]を使用して新しいローカル通知を提示する前に-[UIApplication cancelAllLocalNotifications]が呼び出されました。この方法では、常に最新の通知のみが画面に表示されました。

iOS 5では通知センターが導入されて以来、このソリューションはもう最後の1つのメッセージを表示したいので、もう受け入れられません。また、アプリケーションがアクティブになったときにすべてのローカル通知アラートを閉じたいと考えています。どうすればいいのですか?私はある時点で-[UIApplication cancelAllLocalNotifications]と呼ぶべきだと思うが、どこか分からない。助けていただければ幸いです。

答えて

0

アプリデリゲートのapllicationWillEnterForegroundメソッドで-[UIApplication cancelAllLocalNotifications]に電話してみてください。

詳細はhereを参照してください。

+0

私は、 ' - [UIApplication cancelAllLocalNotifications]'を 'apllicationWillEnterForeground:'と 'applicationDidBecomeActive:'メソッドの両方から呼び出そうとしましたが、望む結果がありませんでした。 アプリケーションが複数の着信メッセージを受信し、ローカル通知アラート(バナーではない)を表示すると、これらのアラートは互いの上に配置されます。最新のアラートからアプリケーションを起動すると、以前のアラートは短時間または永遠に表示されます。以前のアラートをユーザーが表示しないように却下したい – sgosha

0

- (void)applicationDidBecomeActive:(UIApplication *)applicationの方法で-[UIApplication cancelAllLocalNotifications]を電話しないでください。それはまさにあなたが探しているものでなければなりません。

+0

Plsは上記の答えに私のコメントを読んだ。 – sgosha

関連する問題