0

當我的iOS應用程序退出時,它會註冊一系列本地通知,它會在特定時間更新證件號碼。本地通知不會顯示彈出窗口,只需更新徽章即可。在我不熟悉多任務的舊iPod touch上,這個效果很好。但是,在啓用了多任務的設備上,我遇到了一個非常奇怪的錯誤:當我退出應用程序時(即它仍在後臺運行,但我正在執行其他操作),本地通知不會觸發。當應用程序處於後臺時,本地通知不會觸發的原因是什麼?當應用程序處於後臺時iOS本地Notofications不會觸發

的代碼來創建本地通知循環運行(我創建了一個一羣人):

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個通知,當它進入背景(應設立數)。

+0

,你能否告訴我們射擊本地通知的代碼? – Robin

+0

感謝您的建議。我已經添加了一些代碼。 – Jason

+0

你有沒有解決這個問題? – newenglander

回答

0

那麼@Jason你需要設置local notificationalertBody至少顯示一個警報視圖,即所有的東西。

此外,如果您不想在警告框中顯示視圖選項,然後將hasAction屬性設置爲否。

+0

對不起,這完全不能回答我的問題......我對顯示警報視圖不感興趣。我只想更新徽章號碼。 – Jason

+0

您還需要檢查火災日期,如果日期在當前日期之前比通知不會被解僱,則應用程序在您的應用程序中接收到本地通知方法將被調用。 – Robin

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) 
    } 
相關問題