1# @ohos.app.ability.ApplicationStateChangeCallback (ApplicationStateChangeCallback) 2 3The **ApplicationStateChangeCallback** module provides callbacks for the application context to listen for application foreground/background state changes. 4 5> **NOTE** 6> 7> The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version. 8> The APIs of this module can be used only in the stage model. 9 10## Modules to Import 11 12```ts 13import ApplicationStateChangeCallback from '@ohos.app.ability.ApplicationStateChangeCallback'; 14``` 15 16## ApplicationStateChangeCallback.onApplicationForeground 17 18onApplicationForeground(): void; 19 20Called when the application is switched from the background to the foreground. 21 22**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 23 24**Example** 25 26```ts 27import UIAbility from '@ohos.app.ability.UIAbility'; 28import ApplicationStateChangeCallback from '@ohos.app.ability.ApplicationStateChangeCallback'; 29 30let applicationStateChangeCallback: ApplicationStateChangeCallback = { 31 onApplicationForeground() { 32 console.info('applicationStateChangeCallback onApplicationForeground'); 33 }, 34 onApplicationBackground() { 35 console.info('applicationStateChangeCallback onApplicationBackground'); 36 } 37} 38 39export default class MyAbility extends UIAbility { 40 onCreate() { 41 console.log('MyAbility onCreate'); 42 // 1. Obtain an applicationContext object. 43 let applicationContext = this.context.getApplicationContext(); 44 // 2. Use applicationContext.on() to subscribe to the 'applicationStateChange' event. 45 if (applicationContext != undefined) { 46 applicationContext.on('applicationStateChange', applicationStateChangeCallback); 47 } 48 } 49 onDestroy() { 50 let applicationContext = this.context.getApplicationContext(); 51 // 1. Use applicationContext.off() to unsubscribe from the 'applicationStateChange' event. 52 if (applicationContext != undefined) { 53 applicationContext.off('applicationStateChange', applicationStateChangeCallback); 54 } 55 } 56} 57``` 58 59## ApplicationStateChangeCallback.onApplicationBackground 60 61onApplicationBackground(): void; 62 63Called when the application is switched from the foreground to the background. 64 65**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore 66 67**Example** 68 69```ts 70import UIAbility from '@ohos.app.ability.UIAbility'; 71import ApplicationStateChangeCallback from '@ohos.app.ability.ApplicationStateChangeCallback'; 72 73let applicationStateChangeCallback: ApplicationStateChangeCallback = { 74 onApplicationForeground() { 75 console.info('applicationStateChangeCallback onApplicationForeground'); 76 }, 77 onApplicationBackground() { 78 console.info('applicationStateChangeCallback onApplicationBackground'); 79 } 80} 81 82export default class MyAbility extends UIAbility { 83 onCreate() { 84 console.log('MyAbility onCreate'); 85 // 1. Obtain an applicationContext object. 86 let applicationContext = this.context.getApplicationContext(); 87 // 2. Use applicationContext.on() to subscribe to the 'applicationStateChange' event. 88 if (applicationContext != undefined) { 89 applicationContext.on('applicationStateChange', applicationStateChangeCallback); 90 } 91 console.log('Resgiter applicationStateChangeCallback'); 92 } 93 onDestroy() { 94 let applicationContext = this.context.getApplicationContext(); 95 // 1. Use applicationContext.off() to unsubscribe from the 'applicationStateChange' event. 96 if (applicationContext != undefined) { 97 applicationContext.off('applicationStateChange', applicationStateChangeCallback); 98 } 99 } 100} 101``` 102