目录

服务卡片拉起编辑页,出现闪屏

问题现象

在应用内添加服务卡片(应用此时进入后台),在桌面长按卡片,点击编辑按钮后,跳转编辑卡片的页面,跳转动画中间部分有桌面一闪而过的效果。观察视频慢放,是先拉起应用,添加卡片成功的页面,然后消失,再重新打开组件编辑页。

背景知识

问题定位

  1. 使用DevEco Studio查看hilog日志,查找关键字onNewWant,显示调用了loadContent方法。
    OnNewWant:Window [xxx,id:1625]
    LoadContent:[NAPI]
    [js_ui_ability.cpp:1398]end,name:onNewWant,time:4
  2. 排查onNewWant中是否调用onWindowStageCreate方法,该方法会调用loadContent方法。
    onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {
      // 不建议,调用onWindowStageCreate,使用loadContent方法,拉起应用的过程中可能有闪屏现象
      if (this.currentWindowStage !== null) {
        this.onWindowStageCreate(this.currentWindowStage);
      }
    }

分析结论

卡片拉起应用时触发了应用EntryAbility的onNewWant生命周期,且在onNewWant里调用了loadContent方法,销毁了旧的页面内容再加载新的页面,导致了卡片拉起编辑页时的闪屏问题。

修改建议