@ohos.app.ability.abilityLifecycleCallback
AbilityLifecycleCallback模块提供应用上下文ApplicationContext
的生命周期发生变化时触发相应回调的能力,订阅进程内Ability生命周期变化。在进程内Ability生命周期变化时,如创建、可见/不可见、获焦/失焦、销毁等,会触发进入相应的回调,其中返回的此次注册监听生命周期的ID(每次注册该ID会自增+1,当超过监听上限数量2^63-1时,返回-1)
export default class MainAbility extends UIAbility {
lifecycleId: number;
onCreate(want, launchParam) {
let abilityLifecycleCallback = {
// 注册监听应用上下文的生命周期后,在ability创建时触发回调。
onAbilityCreate(ability) {
console.info("onAbilityCreate ability:" + JSON.stringify(ability));
},
// 注册监听应用上下文的生命周期后,在windowStage创建时触发回调。
onWindowStageCreate(ability, windowStage) {
console.info("onWindowStageCreate ability:" + JSON.stringify(ability));
console.info("onWindowStageCreate windowStage:" + JSON.stringify(windowStage));
},
// 注册监听应用上下文的生命周期后,在windowStage获焦时触发回调。
onWindowStageActive(ability, windowStage) {
console.info("onWindowStageActive ability:" + JSON.stringify(ability));
console.info("onWindowStageActive windowStage:" + JSON.stringify(windowStage));
},
// 注册监听应用上下文的生命周期后,在windowStage失焦时触发回调。
onWindowStageInactive(ability, windowStage) {
console.info("onWindowStageInactive ability:" + JSON.stringify(ability));
console.info("onWindowStageInactive windowStage:" + JSON.stringify(windowStage));
},
// 注册监听应用上下文的生命周期后,在windowStage销毁时触发回调。
onWindowStageDestroy(ability, windowStage) {
console.info("onWindowStageDestroy ability:" + JSON.stringify(ability));
console.info("onWindowStageDestroy windowStage:" + JSON.stringify(windowStage));
},
// 注册监听应用上下文的生命周期后,在ability销毁时触发回调。
onAbilityDestroy(ability) {
console.info("onAbilityDestroy ability:" + JSON.stringify(ability));
},
// 注册监听应用上下文的生命周期后,在ability的状态从后台转到前台时触发回调。
onAbilityForeground(ability) {
console.info("onAbilityForeground ability:" + JSON.stringify(ability));
},
// 注册监听应用上下文的生命周期后,在ability的状态从前台转到后台时触发回调。
onAbilityBackground(ability) {
console.info("onAbilityBackground ability:" + JSON.stringify(ability));
},
// 注册监听应用上下文的生命周期后,在ability迁移时触发回调。
onAbilityContinue(ability) {
console.info("onAbilityContinue ability:" + JSON.stringify(ability));
}
}
// 1. 通过context属性获取applicationContext
let applicationContext = this.context.getApplicationContext();
// 2. 通过applicationContext注册监听应用内生命周期
this.lifecycleId = applicationContext.on("abilityLifecycle", abilityLifecycleCallback);
console.info("register callback number: " + JSON.stringify(this.lifecycleId));
}
onDestroy() {
// 3.注销监听
let applicationContext = this.context.getApplicationContext();
applicationContext.off("abilityLifecycle", this.lifecycleId, (error, data) => {
console.info("unregister callback success, err: " + JSON.stringify(error));
});
}
}