0

iOS アプリが終了すると、一連のローカル通知が登録され、特定の時間にバッジ番号が更新されます。ローカル通知はポップアップを表示せず、バッジを更新するだけです。マルチタスクをサポートしていない私の古い iPod touch では、これは完全に機能します。しかし、私のマルチタスク対応デバイスでは、非常に奇妙なバグが発生しています。アプリを「終了」すると (つまり、アプリはバックグラウンドでまだ実行されていますが、別のことをしている場合)、ローカル通知が起動しません。アプリがバックグラウンドにあるときにローカル通知が起動しない理由はありますか?

ローカル通知を作成するコードはループで実行されます (私はそれらの束を作成します):

    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    localNotification.applicationIconBadgeNumber = totalCount; // a number generated earlier in the code
    localNotification.timeZone = [NSTimeZone defaultTimeZone];
    localNotification.fireDate = endDate; // a date generated earlier
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    [localNotification release];

また、アプリのデリゲートに次の関数を作成しました。これにより、アプリがバックグラウンドに入る前に設定されている通知の数がわかります。

- (void)applicationDidEnterBackground:(UIApplication *)application {
    NSLog(@"# Notifications: %d", [[[UIApplication sharedApplication] scheduledLocalNotifications] count]);
}

アプリは、バックグラウンドに入ると、常に 64 個の通知 (設定する必要がある数) があることを通知します。

4

3 に答える 3

1

Apple の開発者ドキュメントから次を確認してください。「デバイス上の各アプリケーションは、64 個のスケジュールされたローカル通知に制限されています。システムは、この制限を超えるスケジュールされた通知を破棄し、最も早く起動する 64 個の通知のみを保持します。定期的な通知は、単一の通知。」

スケジュールされている通知の数に問題がある可能性はありますか?

詳細については、http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/WhatAreRemoteNotif.htmlを参照してください。

于 2013-06-04T23:01:14.467 に答える
0

まあ@Jasonアラートビューを表示するalertBodyには、少なくとものを設定する必要があります。それだけです。local notification

また、アラート ボックスに表示オプションを表示しない場合は、hasAction属性を NO に設定します。

于 2011-08-12T05:14:22.573 に答える
0

迅速なバージョン:

func applicationDidEnterBackground(application: UIApplication) {
       let notification = UILocalNotification()
        notification.alertBody = "App has been entered in background" 
        notification.alertAction = "open" 
        notification.fireDate = NSDate() 
        notification.soundName = UILocalNotificationDefaultSoundName 
        UIApplication.sharedApplication().scheduleLocalNotification(notification)
    }
于 2016-07-15T13:05:25.843 に答える