iOS background push notifications not received after 2-3 hours of inactivity iOS background push notifications not received after 2-3 hours of inactivity ios ios

iOS background push notifications not received after 2-3 hours of inactivity


go through

Targets > Capabilities > Background Modes

Turn on Background Modes


There is no work-around as such. You can try PushKit (iOS VOIP push notifications), which are more reliable but iOS8 only or VOIP persistent socket, which is available from iOS7 (much more difficult).

Apple does not guarantee immediate delivery for background / fetch push notifications (containing: content-available=1). Those notifications were designed to give app a chance to update its content in between runs, not to be 'immediate' nor reliable.

iOS will decide when to deliver this notifications based on undocumented, energy related conditions.

In other words - your app will be notified, only when iOS decides, it does not affect the battery. From my observations, it depends on many things, like:

  • if your device is connected to power source,
  • uses Wi-Fi of 3G,
  • time from last notification,
  • energy and data bandwidth app used when processing last one, itd...
  • when and how was device used in recent past (locked / unlocked screen)

I even noticed the difference between app running in debug session (by Xcode, connected by cable) - notifications were always delivered, and when I started app from Springboard / in release mode (different energy conditions) - then it started misbehaving.


 [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; [[UIApplication sharedApplication] registerForRemoteNotifications];