System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开的实施方式涉及计算机,更具体地,本公开的实施方式涉及一种compose宿主生命周期的感知方法、装置、介质及设备。
技术介绍
1、本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
2、jetpack compose是一个响应式ui开发框架,用于构建安卓应用程序的用户界面。在安卓应用程序中,compose ui界面通常由compose宿主(例如activity、fragment等组件)承载,compose宿主提供了一个用于承载compose ui界面的容器,可以负责启动compose ui界面的根组件和处理与宿主的交互。
3、在安卓应用程序的开发过程中,为了增强用户体验和提高应用性能,开发人员存在根据compose宿主的生命周期状态来进行相应操作的需求。但是在compose框架中,由于compose组件与compose宿主之间存在隔离,compose组件无法直接感知compose宿主的生命周期,使得compose组件无法在宿主生命周期变化时做出及时的响应和处理,应用程序的性能和稳定性下降。并且compose框架中,通过针对compose组件的launchedeffect和disposableeffect函数间接感知compose宿主的生命周期的方法,存在应用资源被重复获取和重复释放的问题,降低应用资源管理的效率和准确率。
技术实现思路
1、有鉴于此,本公开提供一种compose宿主生命周期的感
2、在本公开实施方式的第一方面中,提供了一种compose宿主生命周期的感知方法,所述compose宿主用于承载compose ui界面,所述compose ui界面包括若干compose组件,所述方法包括:
3、获取所述compose宿主的生命周期对象;
4、将所述生命周期对象保存在compose视图树的根节点中;所述compose视图树基于所述若干compose组件之间的嵌套关系构建;
5、从所述根节点中获取所述生命周期对象,在所述compose组件中注册针对所述生命周期对象的监听事件,以感知所述compose宿主的生命周期。
6、可选的,所述compose宿主通过androidcomposeview组件承载compose ui界面,所述将所述生命周期对象保存在compose视图树的根节点中包括:
7、将所述生命周期对象保存在所述androidcomposeview组件中;
8、从所述androidcomposeview组件中获取所述生命周期对象,将所述生命周期对象保存在compose视图树的根节点中。
9、可选的,还包括:为所述compose视图树的根节点添加指定标识;
10、所述从所述根节点中获取所述生命周期对象包括:
11、在所述compose组件中,基于所述指定标识从所述compose视图树中查找所述根节点,获取所述根节点中保存的生命周期对象。
12、可选的,还包括:
13、接收并保存用户针对指定生命周期创建的自定义方法;
14、当监听到所述指定生命周期时,执行所述自定义方法;
15、当所述compose组件被销毁时,取消所述监听事件。
16、在本公开实施方式的第二方面中,提供了一种compose宿主生命周期的感知装置,所述compose宿主用于承载compose ui界面,所述compose ui界面包括若干compose组件,所述装置包括:
17、第一获取模块,用于获取所述compose宿主的生命周期对象;
18、第一存储模块,用于将所述生命周期对象保存在compose视图树的根节点中;所述compose视图树基于所述若干compose组件之间的嵌套关系构建;
19、第二获取模块,用于从所述根节点中获取所述生命周期对象;
20、监听注册模块,用于在所述compose组件中注册针对所述生命周期对象的监听事件,以感知所述compose宿主的生命周期。
21、可选的,所述compose宿主通过androidcomposeview组件承载compose ui界面,所述第一存储模块包括:
22、第一存储子模块,用于将所述生命周期对象保存在所述androidcomposeview组件中;
23、第一获取子模块,用于从所述androidcomposeview组件中获取所述生命周期对象;
24、第二存储子模块,用于将所述生命周期对象保存在compose视图树的根节点中。
25、可选的,还包括:
26、标识添加模块,用于为所述compose视图树的根节点添加指定标识;
27、所述第二获取模块包括:
28、根节点查找模块,用于在所述compose组件中,基于所述指定标识从所述compose视图树中查找所述根节点;
29、第二获取子模块,用于获取所述根节点中保存的生命周期对象。
30、可选的,还包括:
31、方法存储模块,用于接收并保存用户针对指定生命周期创建的自定义方法;
32、方法执行模块,用于当监听到所述指定生命周期时,执行所述自定义方法;
33、监听取消模块,用于当所述compose组件被销毁时,取消所述监听事件。
34、在本公开实施方式的第三方面中,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的方法。
35、在本公开实施方式的第四方面中,提供了一种计算设备,包括:
36、处理器;
37、用于存储处理器可执行程序的存储器;
38、其中,所述处理器通过运行所述可执行程序以实现如上述第一方面所述的方法。
39、根据本公开实施方式,通过获取compose宿主的生命周期对象,将生命周期对象保存在compose视图树的根节点中,再从根节点中获取生命周期对象,在compose组件中注册针对生命周期对象的监听事件,从而使compose组件可以感知其compose宿主的生命周期,在compose宿主生命周期变化时compose组件可以做出及时的响应和处理,提高应用程序的性能和稳定性,并且可以避免应用资源被重复获取和重复释放的情况,提高了应用资源管理的效率和准确率。
本文档来自技高网...【技术保护点】
1.一种Compose宿主生命周期的感知方法,所述Compose宿主用于承载Compose UI界面,所述Compose UI界面包括若干Compose组件,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述Compose宿主通过AndroidComposeView组件承载Compose UI界面,所述将所述生命周期对象保存在Compose视图树的根节点中包括:
3.根据权利要求1所述的方法,其特征在于,还包括:为所述Compose视图树的根节点添加指定标识;
4.根据权利要求1所述的方法,其特征在于,还包括:
5.一种Compose宿主生命周期的感知装置,所述Compose宿主用于承载Compose UI界面,所述Compose UI界面包括若干Compose组件,其特征在于,所述装置包括:
6.根据权利要求5所述的装置,其特征在于,所述Compose宿主通过AndroidComposeView组件承载Compose UI界面,所述第一存储模块包括:
7.根据权利要求5所述的装置,其
8.根据权利要求5所述的装置,其特征在于,还包括:
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4任一所述的方法。
10.一种计算设备,其特征在于,包括:
...【技术特征摘要】
1.一种compose宿主生命周期的感知方法,所述compose宿主用于承载compose ui界面,所述compose ui界面包括若干compose组件,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述compose宿主通过androidcomposeview组件承载compose ui界面,所述将所述生命周期对象保存在compose视图树的根节点中包括:
3.根据权利要求1所述的方法,其特征在于,还包括:为所述compose视图树的根节点添加指定标识;
4.根据权利要求1所述的方法,其特征在于,还包括:
5.一种compose宿主生命周期的感知装置...
【专利技术属性】
技术研发人员:邹铭杰,
申请(专利权)人:杭州网易再顾科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。