System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,具体而言,本申请涉及一种用户事件处理方法、装置、电子设备及可读存储介质。
技术介绍
1、随着采用触摸屏的电子产品的普及,用户可以极为方便的通过与触摸屏的交互手势来操作电子产品,例如,通过点击打开应用程序,通过滑动在应用程序中切换页面,通过长按进行截图等。
2、随着各种应用程序的不断迭代,许多应用程序的页面包含有很多视图,一个手势对应的用户事件的执行可能需要处理多个视图,即会有多个处理任务产生,这就有可能造成主线程阻塞而导致页面卡顿,影响用户体验。例如,当用户通过滑动手势进行列表视图复选操作时,需要处理列表中被选中的多个视图,即会产生多个处理视图的任务,极有可能造成主线程阻塞而带来卡顿。因此,有必要提供一种新的用户事件的处理方法。
技术实现思路
1、本申请的目的旨在至少能解决上述的技术缺陷之一,本申请实施例所提供的技术方案如下:
2、第一方面,本申请实施例提供了一种用户事件处理方法,包括:
3、获取当前页面中各视图在不同用户事件下的响应规则,并利用至少两个线程为各视图添加视图索引,并获取各视图的视图对象在内存中的存储地址,并在对各视图进行渲染后对各视图进行事件响应属性标记;
4、在接收到针对当前页面的用户事件时,获取用户事件对应的串行队列,串行队列中按执行顺序存储有各视图在用户事件下的响应规则对应的响应函数;
5、通过至少两个线程,基于当前页面中各视图的事件响应属性、各视图的视图索引以及各视图的视图对象对应
6、在本申请的一种可选实施例中,获取用户事件对应的串行队列,包括:
7、向对应的服务端发送包含当前页面的页面标识的第一数据请求,并接收服务端响应于第一数据请求发送的事件优先级列表,事件优先级列表中存储有当前页面中各视图响应于不同用户事件的优先级;
8、从事件优先级列表中获取当前页面中各视图响应于用户事件的优先级,并获取各视图在用户事件下的响应规则对应的响应函数;
9、将各视图对应的响应函数按各视图响应用户事件的优先级从高到低从队头排到队尾,得到串行队列。
10、在本申请的一种可选实施例中,该方法还包括:
11、在接收服务端响应于第一数据请求发送的事件优先级列表之后,将当前页面的页面标识置为空,以使在接收到针对当前页面的其他用户事件时,不再向服务端发送第一数据请求。
12、在本申请的一种可选实施例中,通过至少两个线程,基于当前页面中各视图的事件响应属性、各视图的视图索引以及各视图的视图对象对应的存储地址,按执行顺序执行串行队列中的各响应函数,包括:
13、对于串行队列中的每一响应函数,通过该响应函数对应的视图的视图索引确定对应的执行线程;
14、通过执行线程,获取用户事件对应的事件参数,并基于该响应函数对应的视图的事件响应属性确定该响应函数的屏蔽判断结果;
15、若屏蔽判断结果指示执行该响应函数,则基于事件参数、该响应函数、该响应函数对应的视图的视图索引以及该响应函数对应的视图的视图对象的存储地址,执行该响应函数;
16、若屏蔽判断结果指示不执行该响应函数,则屏蔽该响应函数对应的视图,并继续处理串行队列中的下一响应函数。
17、在本申请的一种可选实施例中,该方法还包括:
18、通过观察者模式观察每一视图的事件响应对象的预设属性,并基于预设属性的观察结果确定该视图对应的冲突判断结果,事件响应对象用于响应并分发针对对应视图的用户事件;
19、基于该响应函数对应的视图的事件响应属性确定该响应函数的屏蔽判断结果,包括:
20、若该响应函数对应的视图的事件响应属性指示该响应函数对应的视图不响应于用户事件,则屏蔽判断结果指示不执行该响应函数;
21、若该响应函数对应的视图的事件响应属性指示该响应函数对应的视图响应于用户事件,且该响应函数对应的视图的冲突判断结果指示不存在视图冲突,则屏蔽判断结果指示执行该响应函数;
22、若该响应函数对应的视图的事件响应属性指示该响应函数对应的视图响应于用户事件,且该响应函数对应的视图的冲突判断结果指示存在视图冲突,则屏蔽判断结果指示不执行该响应函数。
23、在本申请的一种可选实施例中,预设属性为用户事件对应的手势作用区域,基于预设属性的观察结果确定该视图对应的冲突判断结果,包括:
24、若手势作用区域位于该视图的第一预设区域,则冲突判断结果指示存在视图冲突;
25、若手势作用区域位于该视图的第二预设区域,则冲突判断结果指示不存在视图冲突。
26、在本申请的一种可选实施例中,该述方法还包括:
27、为各视图添加视图索引之后,将各视图的视图索引映射至对应的基础元数据中;
28、基于事件参数、该响应函数、该响应函数对应的视图的视图索引以及该响应函数对应的视图的视图对象的存储地址,执行该响应函数,包括:
29、基于该响应函数对应的视图的视图索引获取对应的基础元数据,并基于该响应函数对应的视图的视图对象的存储地址获取对应的视图对象;
30、将事件参数、基础元数据以及视图对象代入该响应函数并执行该响应函数。
31、在本申请的一种可选实施例中,利用至少两个线程为各视图添加视图索引,包括:
32、基于预设线程数量,创建至少两个线程;
33、利用至少两个线程,采用互斥锁机制为各视图添加视图索引。
34、在本申请的一种可选实施例中,该方法还包括:
35、向对应的服务端发送包含有当前页面各视图的视图标识的第二数据请求,并接收服务端响应于第二数据请求发送的页面显示数据;
36、基于页面显示数据,对当前页面中的各视图进行渲染。
37、第二方面,本申请实施例提供了一种用户事件处理装置,包括:
38、预处理模块,用于获取当前页面中各视图在不同用户事件下的响应规则,并利用至少两个线程为各视图添加视图索引,并获取各视图的视图对象在内存中的存储地址,并在对各视图进行渲染后对各视图进行事件响应属性标记;
39、串行队列获取模块,用于在接收到针对当前页面的用户事件时,获取用户事件对应的串行队列,串行队列中按执行顺序存储有各视图在用户事件下的响应规则对应的响应函数;
40、串行队列执行模块,用于通过至少两个线程,基于当前页面中各视图的事件响应属性、各视图的视图索引以及各视图的视图对象对应的存储地址,按执行顺序执行串行队列中的各响应函数,得到用户事件对应的处理结果。
41、在本申请的一种可选实施例中,串行队列获取模块具体用于:
42、向对应的服务端发送包含当前页面的页面标识的第一数据请求,并接收服务端响应于第一数据请求发送的事件优先级列表,事本文档来自技高网...
【技术保护点】
1.一种用户事件处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述获取所述用户事件对应的串行队列,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述通过所述至少两个线程,基于所述当前页面中各视图的事件响应属性、各视图的视图索引以及各视图的视图对象对应的存储地址,按所述执行顺序执行所述串行队列中的各响应函数,包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述预设属性为用户事件对应的手势作用区域,所述基于所述预设属性的观察结果确定该视图对应的冲突判断结果,包括:
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1所述的方法,其特征在于,所述利用至少两个线程为各视图添加视图索引,包括:
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
10.一种用户事件处理装置,其特征在于,包括:
< ...【技术特征摘要】
1.一种用户事件处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述获取所述用户事件对应的串行队列,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述通过所述至少两个线程,基于所述当前页面中各视图的事件响应属性、各视图的视图索引以及各视图的视图对象对应的存储地址,按所述执行顺序执行所述串行队列中的各响应函数,包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述预设属性为用户事件对应的手势作用区域...
【专利技术属性】
技术研发人员:苟亚明,
申请(专利权)人:腾讯云计算北京有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。