Skip to main content

iOS - Application Lifecycle Module

note

To receive application lifecycle events, a proper implementation of the ApplicationLifecycleModule protocol is required. Q2MobileCore will interact with your module for various application lifecycle events.

The ApplicationLifecycleModule interface is used when creating a module that needs to respond to application lifecycle events. This module provides callbacks for various application states including launch, foreground/background transitions, memory warnings, and termination.

Application Events

The module receives notifications for the following events:

  • When application did finish launching with options
  • When application will enter foreground
  • When application did become active
  • When application will resign active
  • When application did enter background
  • When application did receive memory warning
  • When application will terminate
  • When application significant time change

Implementation

Implementing an ApplicationLifecycleModule is straightforward—create an NSObject class conforming to the ApplicationLifecycleModule protocol requirements.

Sample ApplicationLifecycleModule Implementation
import Q2ModuleInterfaces

class CustomApplicationLifecycleModule: ApplicationLifecycleModule {

var moduleDelegate: ModuleDelegate?

var moduleDataSource: ModuleDataSource?

public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]?) -> Bool? {
print("CustomApplicationLifecycleModule: didFinishLaunchingWithOptions")
return nil
}

public func applicationWillEnterForeground(_ application: UIApplication) {
print("CustomApplicationLifecycleModule: didFinishLaunchingWithOptions")
}

public func applicationDidBecomeActive(_ application: UIApplication) {
print("CustomApplicationLifecycleModule: applicationDidBecomeActive")
}

public func applicationWillResignActive(_ application: UIApplication) {
print("CustomApplicationLifecycleModule: applicationWillResignActive")
}

public func applicationDidEnterBackground(_ application: UIApplication) {
print("CustomApplicationLifecycleModule: applicationDidEnterBackground")
}

public func applicationDidReceiveMemoryWarning(_ application: UIApplication) {
print("CustomApplicationLifecycleModule: applicationDidReceiveMemoryWarning")
}

public func applicationWillTerminate(_ application: UIApplication) {
print("CustomApplicationLifecycleModule: applicationWillTerminate")
}

public func applicationSignificantTimeChange(_ application: UIApplication) {
print("CustomApplicationLifecycleModule: applicationSignificantTimeChange")
}
}