根据场景一和场景二的问题现象,怀疑是切换自由多窗时触发了应用生命周期函数中的资源释放、加载等相关逻辑,导致应用重新进入页面,按照该思路继续排查应用的日志和代码。
07-03 15:23:15.231 22149 22296 I C03F00/com.hm.example/ArkCompiler: [dict][gc] SmartGC: app cold start finished
07-03 15:23:16.077 4216 4216 W C0393B/com.ohos.sceneboard/AceWindowScene: [dict][(100000:100000:scope)] OnDetachFromFrameNode id: 144, node id: 32188, type: 1, name: com.hm.example
07-03 15:23:16.088 22149 22292 I C04200/com.hm.example/WindowSceneSessionImpl: [dict](4076)UpdateWindowMode: UpdateWindowMode 144 mode 1
07-03 15:23:16.088 4216 4697 I C0420A/com.ohos.sceneboard/WMSLife: [dict][] RequestSceneSessionActivationInner(2412): id 144 want-ability: EntryAbility, bundle: com.hm.example, module: entry, uri: /com.hm.example/entry/EntryAbility, appIndex: 0, tmpSpecifiedId:0
07-03 15:23:16.098 4216 22596 I C01336/com.ohos.sceneboard/AMS: [dict][ability_manager_client.cpp:351]scb call, StartUIAbilityBySCB target: /com.hm.example/entry/EntryAbility.
07-03 15:23:16.110 1475 2537 I C011FF/foundation/ERMS: [dict][RULE_ENGINE_IMPL(GetSceneExperienceFromCache:502)] GetSceneExperienceFromCache set SceneCode! bundleName is = com.hm.example
07-03 15:23:16.111 1475 2537 I C01336/foundation/AMS: [dict][ui_ability_lifecycle_manager.cpp:114]StartUIAbility session:144. bundle:com.hm.example, ability:EntryAbility, reuseDelegator: 0
07-03 15:23:16.111 22149 22319 I C01332/com.hm.example/UIAbility: [dict][ui_ability_thread.cpp:323]name:EntryAbility,targeState:5,isNewWant:1
07-03 15:23:16.111 884 21215 I C01705/resource_schedule_service/EXACT_PREREAD: [dict][(HandleAppStartupPrereadWork):112] App has preread, skip current preread work: com.hm.example20020453
07-03 15:23:16.112 22149 22149 I C01332/com.hm.example/UIAbility: [dict][ui_ability_thread.cpp:240]Lifecycle:name EntryAbility
07-03 15:23:16.112 22149 22149 I C04200/com.hm.example/WindowSessionImpl: [dict](1967)OnNewWant: Window [name:younghs0, id:144]
07-03 15:23:16.112 22149 22149 I C03900/com.hm.example/Ace: [dict][(-1:100000:singleton)] [com.hm.example][entry][100000]: UIContent OnNewWant
07-03 15:23:16.112 22149 22149 I A0FF00/com.hm.example/WidgetCalleeEntryAbility: Ability onNewWant: {"moduleName":"entry","ohos.aafwk.param.displayId":0}
07-03 15:23:16.112 22149 22149 I A00000/com.hm.example/testTag: Ability onWindowStageCreate
07-03 15:23:16.112 22149 22149 I C04200/com.hm.example/JsWindowStage: [dict](87)LoadContent: [NAPI]
07-03 15:23:16.112 22149 22149 I C01332/com.hm.example/UIAbility: [dict][js_ui_ability.cpp:1408]end, name: onNewWant, time: 0 import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
export default class EntryAbility extends UIAbility {
private currentWindowStage: window.WindowStage | undefined = undefined;
onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {
console.info('ability onNewWant');
if (this.currentWindowStage !== undefined) {
this.onWindowStageCreate(this.currentWindowStage);
}
}
onWindowStageCreate(windowStage: window.WindowStage): void {
console.info('ability onWindowStageCreate');
this.currentWindowStage = windowStage;
windowStage.loadContent('pages/Index', (err) => {
console.info('ability loadContent');
if (err.code) {
return;
}
});
}
}