So, on watchOS, I know you can schedule (and reschedule) a WKRefreshBackgroundTask
to do work for you in the background. This is great for my app to make sure that data is current and up-to-date on watchOS - especially since it doesn't receive updates like iOS and macOS.
Except, my data uses CloudKit to store a user's data.
I want to use something like the URLSession
scenario, where you schedule a WKApplicationRefreshBackgroundTask
where you create a background URLSession
task and hand it to the system. The system in turn hands you a WKURLSessionRefreshBackgroundTask
where you check if your data completed its URLSession
(by checking if the downloaded data exists).
My question is, how do you do something like this with CloudKit?
I could just do the downloading of my user's data in the WKApplicationRefreshBackgroundTask
, but I don't think I'm guaranteed it will finish in the time the system gives to my app. This is why (it seems) Apple recommends you split this into two Background Tasks:
WKApplicationRefreshBackgroundTask
- to create theURLSession
and hand it to the system.WKURLSessionRefreshBackgroundTask
- to act upon the data downloaded from step 1.
I am not sure you can do this with CloudKit? Or, at least I can't seem to find something of the sort.