Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS background fetch custom interval

I read all Apple documentation about background fetch and currently I'm using it like this:

[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:minimumBackgroundFetchInterval];

I let OS to decide when to perform background fetch, but if I set it like this:

[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:21600];

Does that mean that fetch will happen every 6h?

like image 604
user3251 Avatar asked Feb 07 '15 10:02

user3251


2 Answers

I did some experiment on iOS10 and iPhone6Plus, giving "UIApplicationBackgroundFetchIntervalMinimum" interval. (of course I invoked some network-related method to give iOS a hint that app is really working... and invoking completionHandler(UIBackgroundFetchResultNewData); )

I got: (run all night)

00:35 01:03 01:31 01:59 02:27 02:55 03:13 03:23 03:51 04:19 04:35 05:04 05:25 05:59 06:27 06:56

so Delta varies from 10 to 34 mins.

like image 73
ingconti Avatar answered Oct 03 '22 08:10

ingconti


No, it means that you are suggesting to iOS that at least six hours should elapse before a background fetch is performed, but the documentation for this property states -

The minimum number of seconds that must elapse before another background fetch can be initiated. This value is advisory only and does not indicate the exact amount of time expected between fetch operations.

So, it could be more than six hours before a background fetch is performed but probably won't be any less. iOS also takes note of the value you return via the completion handler indicating whether there was new data or not to try and determine the times of the day when there is likely to be new data for your app.

like image 38
Paulw11 Avatar answered Oct 03 '22 09:10

Paulw11