2012-01-09 77 views
1

我有一個GPS應用程序註冊運行在background。當我完成一個過程時,我還會顯示一個UILocalNotification。這正確顯示,如果應用程序是打開的,那麼它也出現在Notification Center(從頂部向下滑動)。但是,如果當我的應用程序處於後臺或屏幕被鎖定時撥打UILocalNotification,我會收到通知,但不會顯示在Notification Center中。UILocalNotification沒有顯示在通知中心,當應用程序在後臺

我正確地註冊在我的應用程序委託的通知(iOS 5的錯誤解決):

// Register for notifications 
    [[UIApplication sharedApplication]registerForRemoteNotificationTypes: 
    UIRemoteNotificationTypeBadge | 
    UIRemoteNotificationTypeAlert | 
    UIRemoteNotificationTypeSound]; 

調用通知:

UILocalNotification *localNotif = [[UILocalNotification alloc] init]; 
localNotif.alertBody = msg; 
localNotif.alertAction = NSLocalizedString(@"View", nil); 
localNotif.soundName = @"alert.caf"; 
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]; 
[[UIApplication sharedApplication] presentLocalNotificationNow:localNotif]; 
[localNotif release]; 

這是一個錯誤?爲什麼只有當我的應用程序處於打開狀態時纔會在Notification Center中顯示,即使通知顯示給用戶,而不是其他時間?

回答

0

從您發佈的代碼的外觀來看,它看起來不像代碼在後臺運行。看起來好像你正試圖在當後臺出現本地通知時顯示。你不可以做這個。本地通知意味着計劃在應用程序運行時在應用程序未運行時稍後關閉,然後即使在應用程序關閉時也會觸發。 您需要使用推送通知。看看這裏的蘋果documentation

編輯:您的應用程序是否啓用了通知中心的設置?

+0

不,代碼在後臺完美工作。它已被廣泛測試。本地通知即使在後臺工作,也不會在通知中心顯示。 – 2012-01-09 02:16:16

+0

您的應用程序是否在設置中爲通知中心啓用了應用程序? – DGund 2012-01-09 03:02:25

+0

是的。它顯示在通知中心,如果應用程序是開放的。在後臺時只顯示通知警報。 – 2012-01-09 03:20:49

0

您是否已將UIBackgroundModes項添加到Info.plist文件中?

您需要將UIBackgroundModes鍵設置爲位置。

1

您是否也在使用推送通知?如果您只使用本地,我相信沒有必要撥打registerForRemoteNotificationTypes:

支票Here

相關問題