<!--
{
  "availability" : [
    "watchOS: 6.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "WatchKit",
  "identifier" : "/documentation/WatchKit/WKExtendedRuntimeSession",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "WatchKit"
    ],
    "preciseIdentifier" : "c:objc(cs)WKExtendedRuntimeSession"
  },
  "title" : "WKExtendedRuntimeSession"
}
-->

# WKExtendedRuntimeSession

A session that continues to run your app after the user has stopped interacting.

```
class WKExtendedRuntimeSession
```

## Overview

With extended runtime sessions, your app continues to run after the user stops interacting with it. The app can continue to communicate with Bluetooth devices, process data, or play sounds or haptics, even after the watch’s screen turns off.

Each app can support a single type of extended runtime session: self care, mindfulness, physical therapy, or smart alarm. Select the session by enabling the appropriate Background Modes capability.

For more information, see [Using extended runtime sessions](/documentation/WatchKit/using-extended-runtime-sessions).

## Topics

### Creating a Session

[`session`](/documentation/WatchKit/WKExtendedRuntimeSession/session)

Instantiates a new session object.

[`delegate`](/documentation/WatchKit/WKExtendedRuntimeSession/delegate)

A delegate object for monitoring the session and responding to state changes and errors.

[`WKExtendedRuntimeSessionDelegate`](/documentation/WatchKit/WKExtendedRuntimeSessionDelegate)

A set of optional methods for monitoring an extended runtime session.

### Managing the Session State

[`start()`](/documentation/WatchKit/WKExtendedRuntimeSession/start())

Starts running the session.

[`start(at:)`](/documentation/WatchKit/WKExtendedRuntimeSession/start(at:))

Schedules a session to start running at a future date.

[`invalidate()`](/documentation/WatchKit/WKExtendedRuntimeSession/invalidate())

Stops the session.

[`state`](/documentation/WatchKit/WKExtendedRuntimeSession/state)

The session’s current state.

[`WKExtendedRuntimeSessionState`](/documentation/WatchKit/WKExtendedRuntimeSessionState)

The activation states for an extended runtime session.

[`expirationDate`](/documentation/WatchKit/WKExtendedRuntimeSession/expirationDate)

The time and date when the session expires.

[`requestAutoLaunchAuthorizationStatus(completion:)`](/documentation/WatchKit/WKExtendedRuntimeSession/requestAutoLaunchAuthorizationStatus(completion:))

[`WKExtendedRuntimeSessionAutoLaunchAuthorizationStatus`](/documentation/WatchKit/WKExtendedRuntimeSessionAutoLaunchAuthorizationStatus)

### Alerting the User

[`notifyUser(hapticType:repeatHandler:)`](/documentation/WatchKit/WKExtendedRuntimeSession/notifyUser(hapticType:repeatHandler:))

Play a repeating haptic alert.

### Handling Errors

[`WKExtendedRuntimeSessionErrorCode`](/documentation/WatchKit/WKExtendedRuntimeSessionErrorCode)

The error codes reported by extended runtime sessions.

[`WKExtendedRuntimeSessionErrorDomain`](/documentation/WatchKit/WKExtendedRuntimeSessionErrorDomain)

The domain for errors reported by extended runtime sessions.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)