2

あちこちでローカル通知が適切に起動しない理由についてかなりの数の質問がありますまた、アプリケーションがバックグラウンド状態にあるときにローカル通知が起動しない理由についてもいくつかの質問があります

しかし、驚いたことに、フォアグラウンド状態またはアクティブ状態に関連する通知投稿が見つかりませんでした。つまり、アプリでこの奇妙な問題に直面しています。つまり、アプリがバックグラウンド モードになるとローカル通知が発生し、アプリがアクティブ状態またはフォアグラウンド モードにある場合、通知に設定された起動日が期限切れになった後でも、バックグラウンドに入った直後に通知が起動します。

編集

また、私が直面している別の問題は、アラートが発生していないことです。つまり、didReceive ローカル通知メソッドに記述したアラート アクションです。実装コードは次のとおりです。

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 
{
    application.applicationIconBadgeNumber = 0;
    NSString *reminderText = [notification.userInfo objectForKey:addViewController.textField.text];
    [self.addViewController showReminder:reminderText];
}

そして、これは別のコントローラに存在する showReminder メソッドです。

//Notification alert
- (void)showReminder:(NSString *)text
{
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Reminder" message:text delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(220, 10, 40, 40)];

    UIImage *image= [UIImage imageNamed:@"icon@2x.png"];
    [imageView setImage:image];

    [alertView addSubview:imageView];
    [imageView release];

    [alertView show];
    [alertView release];
}

この問題で質問やスタックオーバーフローへの投稿が必要ない場合は申し訳ありません。

誰でもあなたの提案を投稿してください。どんな助けでも大歓迎です!

よろしくお願いします:)

4

1 に答える 1

6

アプリケーションがアクティブな場合、サウンド、バッジ、アラートは受信されませんが、アプリケーションの代理人application:didReceiveLocalNotification:が呼び出されます

アップルドキュメントから

システムが通知を配信するときにアプリケーションが最優先で表示されている場合、アラートは表示されず、アイコンにはバッジが付けられておらず、音も再生されません。ただし、application:didReceiveLocalNotification:は、アプリケーションデリゲートが実装した場合に呼び出されます。UILocalNotificationインスタンスはこのメソッドに渡され、デリゲートはそのプロパティを確認したり、userInfoディクショナリのカスタムデータにアクセスしたりできます。

于 2012-06-27T06:01:51.163 に答える