Contents

WKSnapshotRefreshBackgroundTask

A background task used to update your app’s user interface in preparation for a snapshot.

Declaration

class WKSnapshotRefreshBackgroundTask

Mentioned in

Overview

Using the methods of WKSnapshotRefreshBackgroundTask, you can push, pop, or present other interface controllers, and then update the content of the desired interface controller. The system automatically takes a snapshot of your user interface as soon as this task completes.

Don’t subclass or create instances of this class. Instead, schedule a background snapshot refresh task by calling scheduleSnapshotRefresh(withPreferredDate:userInfo:scheduledCompletion:). When the system triggers this task, it launches your app in the background, instantiates a WKSnapshotRefreshBackgroundTask object, and passes the task object to your app delegate’s handle(_:) method.

Background snapshot tasks are budgeted. In general, the system performs approximately one task per hour for each app in the dock (including the most recently used app). This budget is shared among all apps on the dock. The system performs multiple tasks an hour for each app with a complication on the active watch face. This budget is shared among all complications on the watch face. After you exhaust the budget, the system delays your requests until more time becomes available.

The system automatically schedules background snapshot request tasks when:

  • Your device starts up

  • Your app updates the complication timeline

  • The user interacts with one of the apps notifications

  • The app transitions from the foreground to the background

  • One hour passes after the user’s last interaction with the app, then the returnToGlanceableUI property is set to true

These requests don’t cancel or replace any of your scheduled requests.

Topics

Completing the background task

Instance properties

See Also

Background tasks