<!--
{
  "availability" : [
    "watchOS: 7.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "WatchKit",
  "identifier" : "/documentation/WatchKit/WKApplicationDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "WatchKit"
    ],
    "preciseIdentifier" : "c:objc(pl)WKApplicationDelegate"
  },
  "title" : "WKApplicationDelegate"
}
-->

# WKApplicationDelegate

A collection of methods that manages the app-level behavior for a single-target watchOS app.

```
@MainActor protocol WKApplicationDelegate : NSObjectProtocol
```

## Overview

Implement the delegate’s methods to respond to your app’s life-cycle events, such as the activation and deactivation of your app. You can also implement delegate methods to respond to background tasks, Siri intents, workout sessions, or Handoff activity from another devices.

To add an app delegate, define a delegate class that subclasses <doc://com.apple.documentation/documentation/ObjectiveC/NSObject-swift.class> and adopts the [`WKApplicationDelegate`](/documentation/WatchKit/WKApplicationDelegate) protocol.

```swift
import WatchKit

class MyWatchAppDelegate: NSObject, WKApplicationDelegate {

}
```

Then define an app delegate adaptor in your SwiftUI <doc://com.apple.documentation/documentation/SwiftUI/App> structure.

```swift
import SwiftUI

@main
struct MyWatchApp_Watch_AppApp: App {
    @WKApplicationDelegateAdaptor var appDelegate: MyWatchAppDelegate
    var body: some Scene {
        WindowGroup {
            NavigationStack {
                ContentView()
            }
        }
    }
}
```

Finally, implement the delegate methods you want to handle.

## Topics

### Monitoring state changes

[Working with the watchOS app life cycle](/documentation/WatchKit/working-with-the-watchos-app-life-cycle)

Learn how the watchOS app life cycle operates and responds to life cycle notification methods.

[`main()`](/documentation/WatchKit/WKApplicationDelegate/main())

Provides the top-level entry point for an app.

[`applicationDidFinishLaunching()`](/documentation/WatchKit/WKApplicationDelegate/applicationDidFinishLaunching())

Tells the delegate that the launch process is almost done and the app is almost ready to run.

[`applicationDidBecomeActive()`](/documentation/WatchKit/WKApplicationDelegate/applicationDidBecomeActive())

Tells the delegate that the watchOS app is visible and processing events.

[`applicationWillResignActive()`](/documentation/WatchKit/WKApplicationDelegate/applicationWillResignActive())

Tells the delegate that the system is about to deactivate the watchOS app.

[`applicationWillEnterForeground()`](/documentation/WatchKit/WKApplicationDelegate/applicationWillEnterForeground())

Tells the delegate that the app is about to transition from the background to the foreground.

[`applicationDidEnterBackground()`](/documentation/WatchKit/WKApplicationDelegate/applicationDidEnterBackground())

Tells the delegate that the app has transitioned from the foreground to the background.

[`deviceOrientationDidChange()`](/documentation/WatchKit/WKApplicationDelegate/deviceOrientationDidChange())

Tells the delegate that the device’s orientation has changed.

### Responding to intents

[`handle(_:completionHandler:)`](/documentation/WatchKit/WKApplicationDelegate/handle(_:completionHandler:))

Responds to a Siri intent.

### Setup Now Playing interface

[`handleRemoteNowPlayingActivity()`](/documentation/WatchKit/WKApplicationDelegate/handleRemoteNowPlayingActivity())

Tells the delegate when the user plays audio in the corresponding iOS app.

### Handling a workout session

[`handle(_:)`](/documentation/WatchKit/WKApplicationDelegate/handle(_:)-1pfoc)

Tells the delegate that the user started a workout session on the paired iPhone.

[`handleActiveWorkoutRecovery()`](/documentation/WatchKit/WKApplicationDelegate/handleActiveWorkoutRecovery())

Tells the delegate when the app relaunches after crashing during an active workout session.

### Handling background tasks

[`handle(_:)`](/documentation/WatchKit/WKApplicationDelegate/handle(_:)-4vdjo)

Tells the delegate that the app has received one or more background tasks.

### Handling extended runtime tasks

[`handle(_:)`](/documentation/WatchKit/WKApplicationDelegate/handle(_:)-7kiwx)

Tells the delegate that the system launched your app to resume an extended runtime session.

### Managing remote notifications

[`didRegisterForRemoteNotifications(withDeviceToken:)`](/documentation/WatchKit/WKApplicationDelegate/didRegisterForRemoteNotifications(withDeviceToken:))

Tells the delegate that the app successfully registered with Apple Push Notification service (APNs).

[`didFailToRegisterForRemoteNotificationsWithError(_:)`](/documentation/WatchKit/WKApplicationDelegate/didFailToRegisterForRemoteNotificationsWithError(_:))

Tells the delegate that Apple Push Notification service (APNs) can’t successfully complete the registration process.

[`didReceiveRemoteNotification(_:fetchCompletionHandler:)`](/documentation/WatchKit/WKApplicationDelegate/didReceiveRemoteNotification(_:fetchCompletionHandler:))

Tells the delegate that a background notification has arrived.

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

The result of an attempt to download the content associated with a remote notification.

### Coordinating Handoff activity

[`handleUserActivity(_:)`](/documentation/WatchKit/WKApplicationDelegate/handleUserActivity(_:))

Responds to Handoff–related activity from complications and notifications.

[`handle(_:)`](/documentation/WatchKit/WKApplicationDelegate/handle(_:)-3kqsk)

Responds to Handoff–related activity from Siri.

### Accepting CloudKit shares

[`userDidAcceptCloudKitShare(with:)`](/documentation/WatchKit/WKApplicationDelegate/userDidAcceptCloudKitShare(with:))

Tells the delegate that the app has access to shared information in CloudKit.



---

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)