Class

WKSnapshotRefreshBackgroundTask

An object you use to update your app’s user interface in preparation for a snapshot.

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.

Do not subclass or create instances of this class yourself. Instead, schedule a background snapshot refresh task by calling scheduleSnapshotRefresh(withPreferredDate:userInfo:scheduledCompletion:). When this task is triggered, the system launches your app in the background, instantiates a WKSnapshotRefreshBackgroundTask object, and passes the task object to your extension 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 in the following situations:

  • When your device starts up.

  • When your app updates the complication timeline.

  • When the user interacts with one of the apps notifications.

  • When the app transitions from the foreground to the background.

  • One hour after the user’s last interaction with the app. In this task, the returnToGlanceableUI property is set to true.

These requests do not cancel or replace any of your scheduled requests.

Topics

Instance Properties

var reasonForSnapshot: WKSnapshotReason

The reason for taking the upcoming snapshot.

enum WKSnapshotReason

The reason for a background snapshot task.

var returnToDefaultState: Bool

A Boolean value indicating that the app should return to its default state.

Deprecated

Relationships

Conforms To

See Also

Background Tasks

class WKRefreshBackgroundTask

The abstract superclass for WatchKit's other background task classes.

class WKApplicationRefreshBackgroundTask

A class you can use to update your app’s state in the background.

class WKURLSessionRefreshBackgroundTask

An object that helps you respond to URLSession background transfers.

class WKWatchConnectivityRefreshBackgroundTask

An object you use to receive background updates from the Watch Connectivity framework.

class WKIntentDidRunRefreshBackgroundTask

An object you use to update your app after a SiriKit intent runs.

Beta
class WKRelevantShortcutRefreshBackgroundTask

An object you use to donate relevant Siri shortcuts.

Beta