HarmonyOS 页面如何监听页面退出后台和回到前台

一个page页面想要监听程序是由后台回到前台,以此来区分页面的onPageShow

HarmonyOS
2025-01-09 14:01:54
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inner-application-abilitystartcallback-V5

注册对当前应用前后台变化的监听。使用callback异步回调。

对于页面区分是A页面的onPageShow 是进入该页面或者返回该页面执行的, 还是后台切前台

1.自定义组件的生命周期回调函数用于通知用户该自定义组件的生命周期,这些回调函数是私有的,在运行时由开发框架在特定的时间进行调用,不能从应用程序中手动调用这些回调函数。

2.onPageShow()在页面每次显示时触发一次,包括路由过程、应用进入前台等场景,仅@Entry装饰的自定义组件生效。

3.目前只有onForeground()回调和onBackground()回调可以感知前后台,可以通过在onForeground()和onBackground()中设置参数传递给@Entry页面,当onPageShow回调执行时通过参数判断来确定是否是前后台显示 可以使用AppStorage作为参数传递。

4.Foreground和Background状态分别在UIAbility实例切换至前台和切换至后台时触发,对应于onForeground()回调和onBackground()回调。

5.onForeground()回调,在UIAbility的UI可见之前,如UIAbility切换至前台时触发。可以在onForeground()回调中申请系统需要的资源,或者重新申请在onBackground()中释放的资源。

6.onBackground()回调,在UIAbility的UI完全不可见之后,如UIAbility切换至后台时候触发。可以在onBackground()回调中释放UI不可见时无用的资源,或者在此回调中执行较为耗时的操作,例如状态保存等。

7.onPageShow和onForeground是两个独立的生命周期方法,它们分别处理页面切换到前台和从后台切回前台的场景。因此,当应用从后台切到前台时,onPageShow会首先被调用,然后是onForeground。

//设置缓存isForeGround,true表示app在前台,false表示app退到后台 
onForeground(): void { 
  AppStorage.setOrCreate('isForeGround', true); 
} 
onBackground(): void { 
  AppStorage.setOrCreate('isForeGround', false); 
}

将应用切换至前台,onPageShow()先于onForeground()调用,感知到AppStorage为false,确认当前状态,应用处于后台,onPageShow()的操作为应用进入前台。当感知到AppStorage为true时,确认当前状态,应用处于前台,onPageShow()的操作为路由过程

分享
微博
QQ
微信
回复
2025-01-09 15:47:45
相关问题
前端页面原生页面如何进行通信?
934浏览 • 1回复 待解决
HarmonyOS 页面如何禁止手势返回
328浏览 • 1回复 待解决
HarmonyOS 页面如何设置全屏显示?
1350浏览 • 1回复 待解决
Web组件h5页面如何交互?
705浏览 • 1回复 待解决
HarmonyOS 如何监听前台应用切换
400浏览 • 1回复 待解决
HarmonyOS List页面如何主动停止滚动
471浏览 • 1回复 待解决