当前位置:   article > 正文

HarmonyOS/OpenHarmony(Stage模型)卡片开发应用上下文Context使用场景二_openharmony context的使用规范

openharmony context的使用规范

3.创建其他应用或其他Module的Context
基类Context提供创建其他应用或其他Module的Context的方法为createModuleContext(moduleName:string),创建其他应用或者其他Module的Context,从而通过该Context获取相应的资源信息(例如获取其他Module的获取应用开发路径信息)。
调用createModuleContext(moduleName:string)方法,获取本应用中其他Module的Context。获取到其他Module的Context之后,即可获取到相应Module的资源信息。

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. export default class EntryAbility extends UIAbility {
  3. onCreate(want, launchParam) {
  4. let moduleName2 = "module1";
  5. let context2 = this.context.createModuleContext(moduleName2);
  6. // ...
  7. }
  8. }

4.订阅进程内Ability生命周期变化
在应用内的DFX统计场景,如需要统计对应页面停留时间和访问频率等信息,可以使用订阅进程内Ability生命周期变化功能。
在进程内Ability生命周期变化时,如创建、可见/不可见、获焦/失焦、销毁等,会触发进入相应的回调,其中返回的此次注册监听生命周期的ID(每次注册该ID会自增+1,当超过监听上限数量2^63-1时,返回-1),以在UIAbilityContext中使用为例进行说明。

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. import Window from '@ohos.window';
  3. const TAG: string = "[Example].[Entry].[EntryAbility]";
  4. export default class EntryAbility extends UIAbility {
  5. lifecycleId: number;
  6. onCreate(want, launchParam) {
  7. let abilityLifecycleCallback = {
  8. onAbilityCreate(ability) {
  9. console.info(TAG, "onAbilityCreate ability:" + JSON.stringify(ability));
  10. },
  11. onWindowStageCreate(ability, windowStage) {
  12. console.info(TAG, "onWindowStageCreate ability:" + JSON.stringify(ability));
  13. console.info(TAG, "onWindowStageCreate windowStage:" + JSON.stringify(windowStage));
  14. },
  15. onWindowStageActive(ability, windowStage) {
  16. console.info(TAG, "onWindowStageActive ability:" + JSON.stringify(ability));
  17. console.info(TAG, "onWindowStageActive windowStage:" + JSON.stringify(windowStage));
  18. },
  19. onWindowStageInactive(ability, windowStage) {
  20. console.info(TAG, "onWindowStageInactive ability:" + JSON.stringify(ability));
  21. console.info(TAG, "onWindowStageInactive windowStage:" + JSON.stringify(windowStage));
  22. },
  23. onWindowStageDestroy(ability, windowStage) {
  24. console.info(TAG, "onWindowStageDestroy ability:" + JSON.stringify(ability));
  25. console.info(TAG, "onWindowStageDestroy windowStage:" + JSON.stringify(windowStage));
  26. },
  27. onAbilityDestroy(ability) {
  28. console.info(TAG, "onAbilityDestroy ability:" + JSON.stringify(ability));
  29. },
  30. onAbilityForeground(ability) {
  31. console.info(TAG, "onAbilityForeground ability:" + JSON.stringify(ability));
  32. },
  33. onAbilityBackground(ability) {
  34. console.info(TAG, "onAbilityBackground ability:" + JSON.stringify(ability));
  35. },
  36. onAbilityContinue(ability) {
  37. console.info(TAG, "onAbilityContinue ability:" + JSON.stringify(ability));
  38. }
  39. }
  40. // 1. 通过context属性获取applicationContext
  41. let applicationContext = this.context.getApplicationContext();
  42. // 2. 通过applicationContext注册监听应用内生命周期
  43. this.lifecycleId = applicationContext.on("abilityLifecycle", abilityLifecycleCallback);
  44. console.info(TAG, "register callback number: " + JSON.stringify(this.lifecycleId));
  45. }
  46. onDestroy() {
  47. let applicationContext = this.context.getApplicationContext();
  48. applicationContext.off("abilityLifecycle", this.lifecycleId, (error, data) => {
  49. console.info(TAG, "unregister callback success, err: " + JSON.stringify(error));
  50. });
  51. }
  52. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/336369
推荐阅读
相关标签
  

闽ICP备14008679号