3. Создайте контекст других приложений или других модулей.Базовый
класс Context предоставляет метод для создания контекста других приложений или других модулей: createModuleContext(moduleName:string).Создайте контекст других приложений или других модулей, чтобы получить соответствующую информацию о ресурсах через контекст (например, получить информацию о пути разработки приложений других модулей).
Вызовите метод createModuleContext(moduleName:string), чтобы получить контекст других модулей в этом приложении. После получения контекста других модулей вы можете получить информацию о ресурсах соответствующего модуля.
import UIAbility from '@ohos.app.ability.UIAbility';
export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) {
let moduleName2 = "module1";
let context2 = this.context.createModuleContext(moduleName2);
// ...
}
}
4. Изменения жизненного цикла способностей в процессе подписки
. В сценарии статистики DFX в приложении, если вам необходимо подсчитать такую информацию, как время пребывания и частота доступа к соответствующей странице, вы можете использовать функцию изменения жизненного цикла способностей в процесс подписки.
При изменении жизненного цикла Способности в процессе, например, создание, видимость/невидимость, фокус/потеря фокуса, уничтожение и т. д., будет запущен соответствующий обратный вызов, в котором возвращается идентификатор жизненного цикла мониторинга регистрации (каждый раз ID зарегистрирован Он увеличится на +1. При превышении верхнего предела мониторинга, 2^63-1, он вернет -1).Давайте используем это в UIAbilityContext в качестве примера.
import UIAbility from '@ohos.app.ability.UIAbility';
import Window from '@ohos.window';
const TAG: string = "[Example].[Entry].[EntryAbility]";
export default class EntryAbility extends UIAbility {
lifecycleId: number;
onCreate(want, launchParam) {
let abilityLifecycleCallback = {
onAbilityCreate(ability) {
console.info(TAG, "onAbilityCreate ability:" + JSON.stringify(ability));
},
onWindowStageCreate(ability, windowStage) {
console.info(TAG, "onWindowStageCreate ability:" + JSON.stringify(ability));
console.info(TAG, "onWindowStageCreate windowStage:" + JSON.stringify(windowStage));
},
onWindowStageActive(ability, windowStage) {
console.info(TAG, "onWindowStageActive ability:" + JSON.stringify(ability));
console.info(TAG, "onWindowStageActive windowStage:" + JSON.stringify(windowStage));
},
onWindowStageInactive(ability, windowStage) {
console.info(TAG, "onWindowStageInactive ability:" + JSON.stringify(ability));
console.info(TAG, "onWindowStageInactive windowStage:" + JSON.stringify(windowStage));
},
onWindowStageDestroy(ability, windowStage) {
console.info(TAG, "onWindowStageDestroy ability:" + JSON.stringify(ability));
console.info(TAG, "onWindowStageDestroy windowStage:" + JSON.stringify(windowStage));
},
onAbilityDestroy(ability) {
console.info(TAG, "onAbilityDestroy ability:" + JSON.stringify(ability));
},
onAbilityForeground(ability) {
console.info(TAG, "onAbilityForeground ability:" + JSON.stringify(ability));
},
onAbilityBackground(ability) {
console.info(TAG, "onAbilityBackground ability:" + JSON.stringify(ability));
},
onAbilityContinue(ability) {
console.info(TAG, "onAbilityContinue ability:" + JSON.stringify(ability));
}
}
// 1. 通过context属性获取applicationContext
let applicationContext = this.context.getApplicationContext();
// 2. 通过applicationContext注册监听应用内生命周期
this.lifecycleId = applicationContext.on("abilityLifecycle", abilityLifecycleCallback);
console.info(TAG, "register callback number: " + JSON.stringify(this.lifecycleId));
}
onDestroy() {
let applicationContext = this.context.getApplicationContext();
applicationContext.off("abilityLifecycle", this.lifecycleId, (error, data) => {
console.info(TAG, "unregister callback success, err: " + JSON.stringify(error));
});
}
}