---
title: WKApplicationDelegate
framework: watchkit
role: symbol
role_heading: Protocol
path: watchkit/wkapplicationdelegate
---

# WKApplicationDelegate

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

## Declaration

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

## Mentioned in

Using background tasks

## Overview

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 NSObject and adopts the WKApplicationDelegate protocol. import WatchKit

class MyWatchAppDelegate: NSObject, WKApplicationDelegate {

} Then define an app delegate adaptor in your SwiftUI App structure. 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](watchkit/working-with-the-watchos-app-life-cycle.md)
- [main()](watchkit/wkapplicationdelegate/main().md)
- [applicationDidFinishLaunching()](watchkit/wkapplicationdelegate/applicationdidfinishlaunching().md)
- [applicationDidBecomeActive()](watchkit/wkapplicationdelegate/applicationdidbecomeactive().md)
- [applicationWillResignActive()](watchkit/wkapplicationdelegate/applicationwillresignactive().md)
- [applicationWillEnterForeground()](watchkit/wkapplicationdelegate/applicationwillenterforeground().md)
- [applicationDidEnterBackground()](watchkit/wkapplicationdelegate/applicationdidenterbackground().md)
- [deviceOrientationDidChange()](watchkit/wkapplicationdelegate/deviceorientationdidchange().md)

### Responding to intents

- [handle(_:completionHandler:)](watchkit/wkapplicationdelegate/handle(_:completionhandler:).md)

### Setup Now Playing interface

- [handleRemoteNowPlayingActivity()](watchkit/wkapplicationdelegate/handleremotenowplayingactivity().md)

### Handling a workout session

- [handle(_:)](watchkit/wkapplicationdelegate/handle(_:)-1pfoc.md)
- [handleActiveWorkoutRecovery()](watchkit/wkapplicationdelegate/handleactiveworkoutrecovery().md)

### Handling background tasks

- [handle(_:)](watchkit/wkapplicationdelegate/handle(_:)-4vdjo.md)

### Handling extended runtime tasks

- [handle(_:)](watchkit/wkapplicationdelegate/handle(_:)-7kiwx.md)

### Managing remote notifications

- [didRegisterForRemoteNotifications(withDeviceToken:)](watchkit/wkapplicationdelegate/didregisterforremotenotifications(withdevicetoken:).md)
- [didFailToRegisterForRemoteNotificationsWithError(_:)](watchkit/wkapplicationdelegate/didfailtoregisterforremotenotificationswitherror(_:).md)
- [didReceiveRemoteNotification(_:fetchCompletionHandler:)](watchkit/wkapplicationdelegate/didreceiveremotenotification(_:fetchcompletionhandler:).md)
- [WKBackgroundFetchResult](watchkit/wkbackgroundfetchresult.md)

### Coordinating Handoff activity

- [handleUserActivity(_:)](watchkit/wkapplicationdelegate/handleuseractivity(_:).md)
- [handle(_:)](watchkit/wkapplicationdelegate/handle(_:)-3kqsk.md)

### Accepting CloudKit shares

- [userDidAcceptCloudKitShare(with:)](watchkit/wkapplicationdelegate/userdidacceptcloudkitshare(with:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### App structure

- [Setting up a watchOS project](watchos-apps/setting-up-a-watchos-project.md)
- [WKApplication](watchkit/wkapplication.md)
- [WKExtension](watchkit/wkextension.md)
- [WKExtensionDelegate](watchkit/wkextensiondelegate.md)
- [WKApplicationMain(_:_:_:)](watchkit/wkapplicationmain(_:_:_:).md)
- [WKInterfaceDevice](watchkit/wkinterfacedevice.md)
- [WKPrefersNetworkUponForeground](bundleresources/information-property-list/wkprefersnetworkuponforeground.md)
