CN114338709B - 一种用户头像同步方法、装置、存储介质及电子设备 - Google Patents
一种用户头像同步方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114338709B CN114338709B CN202111489507.4A CN202111489507A CN114338709B CN 114338709 B CN114338709 B CN 114338709B CN 202111489507 A CN202111489507 A CN 202111489507A CN 114338709 B CN114338709 B CN 114338709B
- Authority
- CN
- China
- Prior art keywords
- user
- avatar
- head portrait
- network address
- view
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种用户头像同步方法、装置、存储介质及电子设备,加载客户端内预置的继承于ImageView的AvatarImageView,方法应用于AvatarImageView,包括:获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址;基于当前用户头像对应的用户标识和头像网络地址,判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与头像网络地址是否一致,其中,用户头像列表位于AvatarImageView内,包括已加载显示页面内的多个用户标识及每个用户标识对应的用户头像的网络地址;若不一致,缓存当前用户头像,并基于当前用户头像刷新已加载显示页面的用户头像。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种用户头像同步方法、装置、存储介质及电子设备。
背景技术
在社交类APP(Application,应用程序)中用户头像是一个很重要的社交属性,人们经常通过头像来展示自己的特征,彰显自己的个性。同一个用户的头像可能会在APP内多个页面出现,比如用户列表页、用户资料页、私聊页面等,这些头像往往只会在页面展示时加载一次,之后只能在页面数据刷新,或者重新打开页面后,才会触发刷新。在这种机制下,会导致新打开的页面显示的是用户的新头像,返回到上一个页面后,显示的还是用户的旧头像,给使用者造成体验上的撕裂感。
目前业界保持APP内用户头像统一的实现方案大多是给APP推送消息加APP内广播的方案:用户在更改头像后,服务器通过长链接给APP推送更改头像的用户ID,APP在拿到用户ID后,在APP内发出一个广播,显示头像的页面订阅这条广播,对用户头像进行重新加载,这样就实现了APP内用户头像的一致性。
但现有的使用服务器推送加APP内广播的方案具有以下缺点:
(1)大量的服务器推送非常消耗服务器资源,增加服务器成本。
(2)APP使用者并不关心所有用户的头像是否更改,如果给所有在线用户推送消息,会造成服务器资源和使用者手机性能的浪费,并使APP使用者的手机续航变短。
(3)采用APP内广播的方式,需要在显示头像的页面订阅广播触发刷新头像,会增加一定的开发和维护成本。
因此,需要一种更高效的解决方案来保持用户头像的一致性,减少用户在体验上的撕裂感。
发明内容
本申请实施例的目的在于提供一种用户头像同步方法、装置、存储介质及电子设备,以在不增加服务器压力和成本,通过低成本的方式保持APP内用户头像的一致性。
为了实现上述目的,本申请的实施例通过如下方式实现:
第一方面,本申请实施例提供一种用户头像同步方法,加载客户端内预置的继承于原图片显示类ImageView的头像辅助类AvatarImageView,所述方法应用于AvatarImageView,包括:获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址;基于所述当前用户头像对应的用户标识和头像网络地址,判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与所述头像网络地址是否一致,其中,所述用户头像列表位于AvatarImageView内,包括已加载显示页面内的多个用户标识及每个用户标识对应的用户头像的网络地址;若不一致,缓存所述当前用户头像,并基于所述当前用户头像刷新已加载显示页面的用户头像。
在本申请实施例中,利用头像辅助类AvatarImageView,获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址,并判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与头像网络地址是否一致,从而确定用户头像是否发生变更。在不一致时,确定用户头像发生变更,以缓存的当前用户头像刷新已加载显示页面的用户头像,从而实现对已加载显示页面中该目标用户标识对应的目标用户头像的刷新。这样可以保持在APP内已显示的用户头像的一致性,提升用户的使用体验,并且,在保持APP内用户头像一致性的同时,不会增大服务器压力和成本,并且APP开发和维护成本极低。
结合第一方面,在第一方面的第一种可能的实现方式中,客户端启动后进入用户列表页面,在获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址之前,所述方法还包括:从所述用户列表页面拉取每个用户的用户信息并缓存,作为所述用户头像列表,其中,所述用户信息包括每个用户的用户标识和用户头像的网络地址;以及,针对每个已加载显示页面,从中拉取每个用户的用户信息并添加到所述用户头像列表中。
在该实现方式中,从用户列表页面拉取每个用户的用户信息(包括用户标识和用户头像的网络地址)并缓存,作为用户头像列表;以及,针对每个已加载显示页面,从中拉取每个用户的用户信息并添加到用户头像列表中。这样可以针对APP内每个已加载显示页面,都能够及时实现用户头像的刷新,使得更新的用户头像不仅可以在新加载显示页面中展示,还可以实时更新至已加载显示页面中,从而避免用户在体验上的撕裂感,也无需服务器进行站内广播,极大地节约了服务器资源和成本。
结合第一方面,在第一方面的第二种可能的实现方式中,基于所述当前用户头像对应的用户标识和头像网络地址,判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与所述头像网络地址是否一致,包括:从所述用户头像列表中确定出与所述当前用户头像对应的用户标识一致的目标用户标识;将所述目标用户标识对应的目标用户头像的目标网络地址,与所述头像网络地址进行比对,判断所述目标网络地址与所述头像网络地址是否一致。
在该实现方式中,从用户头像列表中确定出与当前用户头像对应的用户标识一致的目标用户标识,而后将目标用户标识对应的目标用户头像的目标网络地址,与头像网络地址进行比对,判断目标网络地址与头像网络地址是否一致。通过此种方式可以高效地判断新加载显示页面的用户头像相较于已加载显示页面的用户头像是否发生变更。
结合第一方面,在第一方面的第三种可能的实现方式中,缓存所述当前用户头像,并基于所述当前用户头像刷新已加载显示页面的用户头像,包括:将所述当前用户头像添加到AvatarImageView内进行缓存;从缓存中确定出所述目标用户标识对应的所有目标用户头像;基于所述当前用户头像对所有目标用户头像进行刷新,从而加载所述当前用户头像作为每个已加载显示页面中的用户头像。
在该实现方式中,利用AvatarImageView缓存的当前用户头像,从缓存中确定出目标用户标识对应的所有目标用户头像,根据当前用户头像对所有目标用户头像进行刷新,从而简单高效地实现对每个已加载显示页面中的用户头像的更新。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,在加载所述当前用户头像作为每个已加载显示页面中的用户头像后,所述方法还包括:在检测到用户头像被移出显示页面时,将AvatarImageView内缓存的该显示页面的用户头像从缓存中清除;在客户端退出任一显示页面时,将AvatarImageView内缓存的该显示页面的用户头像从缓存中清除。
在该实现方式中,由于新加载的显示页面可以与更新后的用户头像保持一致(因为新加载显示页面会刷新),因此,在客户端退出任一显示页面时,可以将AvatarImageView内缓存的该显示页面的用户头像从缓存中清除。而在检测到用户头像被移出显示页面时,同样可以将AvatarImageView内缓存的该显示页面的用户头像从缓存中清除。这样可以减少AvatarImageView的内存占用,减少AvatarImageView每次运行用户头像同步方法时进行检测的数据量,提升运行效率。
第二方面,本申请实施例提供一种用于用户头像同步的头像辅助类的构建方法,包括:创建继承于原图片显示类ImageView的头像辅助类AvatarImageView,并在AvatarImageView内设置检测函数,其中,AvatarImageView用于缓存头像View,每个头像View绑定有对应的用户标识userID和头像网络地址showUrl,以及,设置有用于刷新头像View的callback;在AvatarImageView中针对头像View加载图片的关键函数中进行插桩,用于触发AvatarImageView缓存该头像View,并触发检测函数运行,以使检测函数通过检测头像View对应的userID确定对应的用户,以在AvatarImageView已缓存的头像View中确定出该用户的所有头像View并执行callback刷新头像。
在该实现方式中,创建继承于原图片显示类ImageView的头像辅助类AvatarImageView(用于缓存头像View,每个头像View绑定有对应的用户标识userID和头像网络地址showUrl,设置有用于刷新头像View的callback),可以提供数据;在AvatarImageView内设置检测函数,并针对头像View加载图片的关键函数中进行插桩,可以触发AvatarImageView缓存该头像View,并触发检测函数运行,以使检测函数通过检测头像View对应的userID确定对应的用户,以在AvatarImageView已缓存的头像View中确定出该用户的所有头像View并执行callback刷新头像。由此可以简单方便地实现用于用户头像同步的头像辅助类在APP内可靠同步用户头像的功能。
结合第二方面,在第二方面的第一种可能的实现方式中,在AvatarImageView内创建一个容器AvatarViewList,用于缓存已显示的头像View。
第三方面,本申请实施例提供一种用户头像同步装置,加载客户端内预置的继承于原图片显示类ImageView的头像辅助类AvatarImageView,所述装置应用于AvatarImageView,包括:获取模块,用于获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址;判断模块,用于基于所述当前用户头像对应的用户标识和头像网络地址,判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与所述头像网络地址是否一致,其中,所述用户头像列表位于AvatarImageView内,包括已加载显示页面内的多个用户标识及每个用户标识对应的用户头像的网络地址;头像刷新模块,用于在目标网络地址与头像网络地址不一致时,缓存所述当前用户头像,并基于所述当前用户头像刷新已加载显示页面的用户头像。
第四方面,本申请实施例提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面或第一方面的可能的实现方式中任一项所述的用户头像同步方法,或者执行第二方面或第二方面的第一种可能的实现方式所述的用于用户头像同步的头像辅助类的构建方法。
第五方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时实现第一方面或第一方面的可能的实现方式中任一项所述的用户头像同步方法,或者实现第二方面或第二方面的第一种可能的实现方式所述的用于用户头像同步的头像辅助类的构建方法。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相去关的附图。
图1为本申请实施例提供的一种用于用户头像同步的头像辅助类的构建方法的流程图。
图2为本申请实施例提供的一种用户头像同步方法的流程图。
图3为本申请实施例提供的客户端内已加载显示页面和新加载显示页面的示意图。
图4为本申请实施例提供的一种用户头像同步装置的结构框图。
图5为本申请实施例提供的一种电子设备的结构框图。
图标:10-用户头像同步装置;11-获取模块;12-判断模块;13-头像刷新模块;20-电子设备;21-存储器;22-通信模块;23-总线;24-处理器。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为了实现对用户头像的同步,本实施例提供一种用户头像同步方法来保持APP内用户头像的一致性。由于本方案提供的用户头像同步方法通过预置的头像辅助类AvatarImageView来实现,为了便于阅读和理解本方案,此处先对本方案提供的用于用户头像同步的头像辅助类的构建方法进行介绍。
请参阅图1,图1为本申请实施例提供的一种用于用户头像同步的头像辅助类的构建方法的流程图。
在本实施例中,用于用户头像同步的头像辅助类的构建方法可以包括步骤S11和步骤S12。需要说明的是,为了便于表述,步骤S11和步骤S12基于开发人员的角度进行介绍,可以理解的是,这些表述可以替换为以计算机设备的角度进行描述的方式,这些都在本申请的保护范围内。
为了构建用于用户头像同步的头像辅助类,可以执行步骤S11。
步骤S11:创建继承于原图片显示类ImageView的头像辅助类AvatarImageView,并在AvatarImageView内设置检测函数,其中,AvatarImageView用于缓存头像View,每个头像View绑定有对应的用户标识userID和头像网络地址showUrl,以及,设置有用于刷新头像View的callback。
在本实施例中,由于原图片显示类ImageView难以满足本方案在用户头像同步时的需求,因此,创建一个继承于ImageView的头像辅助类AvatarImageView,用于缓存头像View,例如,可以在AvatarImageView内创建一个容器AvatarViewList,用于缓存已显示的头像View。
示例性的,可以在AvatarImageView内设置检测函数,以便检测用户头像是否发生更改。为了便于检测和后续过程中用户头像的刷新,本方案针对每个头像View,绑定有对应的用户标识userID和头像网络地址showUrl,以及,设置有用于刷新头像View的callback。
而后,可以执行步骤S12。
步骤S12:在AvatarImageView中针对头像View加载图片的关键函数中进行插桩,用于触发AvatarImageView缓存该头像View,并触发检测函数运行,以使检测函数通过检测头像View对应的userID确定对应的用户,以在AvatarImageView已缓存的头像View中确定出该用户的所有头像View并执行callback刷新头像。
在本实施例中,可以在AvatarImageView中针对头像View加载图片的关键函数中进行插桩,用于触发AvatarImageView缓存该头像View,以及,可以触发检测函数运行。
检测函数则可以通过检测头像View对应的userID确定对应的用户,以在AvatarImageView已缓存的头像View中确定出该用户的所有头像View并执行callback刷新头像。
此处,以一个例子对AvatarImageView的构建和功能进行说明,以Android代码实现AvatarImageView的关键部分的构建为例:
通过此部分,可以实现继承于ImageView的类AvatarImageView的创建,用于提供数据。
进一步的:
通过此部分,使得AvatarImageView可以用于触发检测。
进一步的:
通过此部分,可以实现AvatarImageView对缓存的用户头像的删除功能。
对于控制用户头像一致的辅助类的实现,主要用来缓存头像View,并检测头像View是否需要重新加载图片。具体如下:
通过此部分,可以实现对头像View是否变更的判断功能,以及,可以触发头像View的重新加载。
进一步的,对于头像View的缓存及清除:
通过此部分,可以实现头像View的缓存及清除。
基于此,通过创建继承于原图片显示类ImageView的头像辅助类AvatarImageView(用于缓存头像View,每个头像View绑定有对应的用户标识userID和头像网络地址showUrl,设置有用于刷新头像View的callback),可以提供数据;在AvatarImageView内设置检测函数,并针对头像View加载图片的关键函数中进行插桩,可以触发AvatarImageView缓存该头像View,并触发检测函数运行,以使检测函数通过检测头像View对应的userID确定对应的用户,以在AvatarImageView已缓存的头像View中确定出该用户的所有头像View并执行callback刷新头像。由此可以简单方便地实现用于用户头像同步的头像辅助类在APP内可靠同步用户头像的功能。
得到AvatarImageView后,可以将AvatarImageView预置在客户端(APP)内,以便在客户端实现对APP内用户头像的同步,保持APP内用户头像的一致性。
基于此,可以执行本实施例提供的一种用户头像同步方法。请参阅图2,图2为本申请实施例提供的一种用户头像同步方法的流程图,用户头像同步方法应用于头像辅助类AvatarImageView(AvatarImageView预置在客户端,而客户端安装在电子设备中,因此,本方案将以电子设备为执行主体对方案进行介绍,但不作限定),用户头像同步方法可以包括步骤S21、步骤S22和步骤S23。
为了实现对用户头像的同步,可以在APP每加载一个新的显示页面时,即运行用户头像同步方法,从而可以实现用户头像的实时同步。
在执行步骤S21之前,先对将要涉及的用户头像列表进行介绍:
在本实施例中,用户启动客户端之后,客户端首先打开的是用户列表页,而此页面通常包含多个不同用户的头像、ID等信息。那么,电子设备可以利用AvatarImageView,从用户列表页面拉取每个用户的用户信息并缓存至AvatarImageView(创建的容器AvatarViewList,用于缓存已显示的头像View)内,作为用户头像列表。此处的用户信息包括每个用户的用户标识(userID)和用户头像的网络地址(showUrl)。另外,针对每个已加载显示页面,电子设备均可以进行此操作,从显示页面中拉取每个用户的用户信息并添加到用户头像列表中。
这样可以针对APP内每个已加载显示页面,都能够进行缓存,有利于在用户头像发生变更时,及时实现用户头像的刷新,使得更新的用户头像不仅可以在新加载显示页面中展示,还可以实时更新至已加载显示页面中,从而避免用户在体验上的撕裂感。
那么,针对客户端新加载显示页面时,电子设备可以执行步骤S21。
步骤S21:获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址。
在客户端加载一个新的显示页面时,电子设备可以获取新加载显示页面中当前用户头像对应的用户标识(userID)和头像网络地址(showUrl)。
获取用户标识和头像网络地址后,电子设备可以执行步骤S22。
步骤S22:基于所述当前用户头像对应的用户标识和头像网络地址,判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与所述头像网络地址是否一致,其中,所述用户头像列表位于AvatarImageView内,包括已加载显示页面内的多个用户标识及每个用户标识对应的用户头像的网络地址。
在本实施例中,电子设备可以基于当前用户头像对应的用户标识和头像网络地址,判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与头像网络地址是否一致。
示例性的,可以从用户头像列表中确定出与当前用户头像对应的用户标识一致的目标用户标识(可以通过遍历的方式进行),再将目标用户标识对应的目标用户头像的目标网络地址,与头像网络地址进行比对,判断目标网络地址与头像网络地址是否一致。
通过此种方式可以高效地判断新加载显示页面的用户头像相较于已加载显示页面的用户头像是否发生变更。
在确定一个目标网络地址与头像网络地址不一致时,说明用户头像发生了变更,因此可以执行步骤S23。
步骤S23:缓存所述当前用户头像,并基于所述当前用户头像刷新已加载显示页面的用户头像。
在本实施例中,电子设备可以缓存当前用户头像,再基于当前用户头像刷新已加载显示页面的用户头像,实现用户头像在客户端内的同步。
示例性的,电子设备可以将当前用户头像添加到AvatarImageView内进行缓存,并从缓存中确定出目标用户标识对应的所有目标用户头像,可以通过对用户头像列表进行遍历来确定所有目标用户头像。
而后,电子设备可以基于当前用户头像对所有目标用户头像进行刷新(利用刷新头像View的callback来实现),从而加载当前用户头像作为每个已加载显示页面中的用户头像。由此可以完成对客户端内用户头像的及时同步(用户在客户端打开任一显示页面,再返回之前已经打开过的页面时,之前的显示页面中的用户头像同样已经实现同步)。
利用AvatarImageView缓存的当前用户头像,从缓存中确定出目标用户标识对应的所有目标用户头像,根据当前用户头像对所有目标用户头像进行刷新,从而简单高效地实现对每个已加载显示页面中的用户头像的更新。
而在确定一个目标网络地址与头像网络地址一致时,说明其他的目标网络地址(目标用户标识相同的网络地址)也是一致的,因为每加载一个新的页面即会运行一次,所有的已加载显示页面中的用户头像时保持一致的,因此在用户头像未变更时,不必进行同步。从而,可以在遍历到第一个目标网络地址且确定与头像网络地址一致时,结束遍历过程。
那么,此时执行的步骤S23,即缓存当前用户头像,将其加入到用户头像列表中即可。
在加载当前用户头像作为每个已加载显示页面中的用户头像后,电子设备还可以在检测到用户头像被移出显示页面时,将AvatarImageView内缓存的该显示页面的用户头像从缓存中清除。而在客户端退出任一显示页面时,可以将AvatarImageView内缓存的该显示页面的用户头像从缓存中清除。
由于新加载的显示页面可以与更新后的用户头像保持一致(因为新加载显示页面会刷新),因此,在客户端退出任一显示页面时,可以将AvatarImageView内缓存的该显示页面的用户头像从缓存中清除。而在检测到用户头像被移出显示页面时,同样可以将AvatarImageView内缓存的该显示页面的用户头像从缓存中清除。这样可以减少AvatarImageView的内存占用,减少AvatarImageView每次运行用户头像同步方法时进行检测的数据量,提升运行效率。
此处以一个具体的例子对用户头像同步方法的应用进行说明:
请参阅图3,图3为本申请实施例提供的客户端内已加载显示页面和新加载显示页面的示意图。其中,用户列表页、私聊页为已加载显示页面,而用户资料页为新加载显示页面。
用户列表页、私聊页和用户资料页均包含需要显示的用户头像(同一用户,具有同样的用户标识userID,例如编号111)。其中,已加载显示页面:用户列表页、私聊页的用户头像为头像A,AvatarImageView中缓存了此用户的用户标识(编号111),以及各自对应的用户头像(头像A)的网络地址(例如UrlA)。而用户资料页为新加载显示页面,电子设备可以获取用户的用户标识(编号111)和头像B的头像网络地址(例如UrlB)。
那么电子设备可以在用户资料页加载头像B时,触发用户头像同步方法的运行,从而确定出用户头像已经发生了变更。因此,利用AvatarImageView缓存头像B,遍历出用户标识(编号111)对应的头像网络地址(例如UrlA),利用预先设置的刷新头像View的callback来实现对用户列表页和私聊页的用户头像的更新,使得用户列表页和私聊页的头像网络地址更新为UrlB,由此,实现了客户端内用户头像的一致性。
因此,利用头像辅助类AvatarImageView,获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址,并判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与头像网络地址是否一致,从而确定用户头像是否发生变更。在不一致时,确定用户头像发生变更,以缓存的当前用户头像刷新已加载显示页面的用户头像,从而实现对已加载显示页面中该目标用户标识对应的目标用户头像的刷新。这样可以保持在APP内已显示的用户头像的一致性,提升用户的使用体验,并且,在保持APP内用户头像一致性的同时,不会增大服务器压力和成本,并且APP开发和维护成本极低。
请参阅图4,图4为本申请实施例提供的一种用户头像同步装置10的结构框图。
在本实施例中,加载客户端内预置的继承于原图片显示类ImageView的头像辅助类AvatarImageView,用户头像同步装置10应用于AvatarImageView,可以包括:
获取模块11,用于获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址。
判断模块12,用于基于所述当前用户头像对应的用户标识和头像网络地址,判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与所述头像网络地址是否一致,其中,所述用户头像列表位于AvatarImageView内,包括已加载显示页面内的多个用户标识及每个用户标识对应的用户头像的网络地址。
头像刷新模块13,用于在目标网络地址与头像网络地址不一致时,缓存所述当前用户头像,并基于所述当前用户头像刷新已加载显示页面的用户头像。
在本实施例中,客户端启动后进入用户列表页面,所述用户头像同步装置10还包括用户头像列表模块,用于在所述获取模块11获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址之前,从所述用户列表页面拉取每个用户的用户信息并缓存,作为所述用户头像列表,其中,所述用户信息包括每个用户的用户标识和用户头像的网络地址;以及,针对每个已加载显示页面,从中拉取每个用户的用户信息并添加到所述用户头像列表中。
在本实施例中,所述判断模块12,具体用于从所述用户头像列表中确定出与所述当前用户头像对应的用户标识一致的目标用户标识;将所述目标用户标识对应的目标用户头像的目标网络地址,与所述头像网络地址进行比对,判断所述目标网络地址与所述头像网络地址是否一致。
在本实施例中,所述头像刷新模块13,具体用于将所述当前用户头像添加到AvatarImageView内进行缓存;从缓存中确定出所述目标用户标识对应的所有目标用户头像;基于所述当前用户头像对所有目标用户头像进行刷新,从而加载所述当前用户头像作为每个已加载显示页面中的用户头像。
在本实施例中,所述用户头像同步装置10还包括用户头像清除模块,用于在所述头像刷新模块13加载所述当前用户头像作为每个已加载显示页面中的用户头像后,在检测到用户头像被移出显示页面时,将AvatarImageView内缓存的该显示页面的用户头像从缓存中清除;在客户端退出任一显示页面时,将AvatarImageView内缓存的该显示页面的用户头像从缓存中清除。
请参阅图5,图5为本申请实施例提供的一种电子设备20的结构框图。
在本实施例中,电子设备20可以为个人电脑、平板电脑、智能手机等终端设备,此处不作限定。
示例性的,电子设备20可以包括:通过网络与外界连接的通信模块22、用于执行程序指令的一个或多个处理器24、总线23和不同形式的存储器21,例如,磁盘、ROM、或RAM,或其任意组合。以及,电子设备20还具有显示屏,可以展示加载的显示页面。存储器21、通信模块22、处理器24之间可以通过总线23连接。
示例性的,存储器21中存储有程序。处理器24可以从存储器21调用并运行这些程序,从而便可以通过运行程序而实现用户头像同步方法,或者实现用于用户头像同步的头像辅助类的构建方法。
本申请实施例提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行本实施例中的用户头像同步方法,或者执行本实施例中的用于用户头像同步的头像辅助类的构建方法。
综上所述,本申请实施例提供一种用户头像同步方法、装置、存储介质及电子设备,利用头像辅助类AvatarImageView,获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址,并判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与头像网络地址是否一致,从而确定用户头像是否发生变更。在不一致时,确定用户头像发生变更,以缓存的当前用户头像刷新已加载显示页面的用户头像,从而实现对已加载显示页面中该目标用户标识对应的目标用户头像的刷新。这样可以保持在APP内已显示的用户头像的一致性,提升用户的使用体验,并且,在保持APP内用户头像一致性的同时,不会增大服务器压力和成本,并且APP开发和维护成本极低。
在本申请所提供的实施例中,应该理解到,所揭露的装置及方法,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种用户头像同步方法,其特征在于,加载客户端内预置的继承于原图片显示类ImageView的头像辅助类AvatarImageView,所述方法应用于AvatarImageView,包括:
获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址;
基于所述当前用户头像对应的用户标识和头像网络地址,判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与所述头像网络地址是否一致,其中,所述用户头像列表位于AvatarImageView内,包括已加载显示页面内的多个用户标识及每个用户标识对应的用户头像的网络地址;
若不一致,缓存所述当前用户头像,并基于所述当前用户头像刷新已加载显示页面的用户头像。
2.根据权利要求1所述的用户头像同步方法,其特征在于,客户端启动后进入用户列表页面,在获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址之前,所述方法还包括:
从所述用户列表页面拉取每个用户的用户信息并缓存,作为所述用户头像列表,其中,所述用户信息包括每个用户的用户标识和用户头像的网络地址;以及,
针对每个已加载显示页面,从中拉取每个用户的用户信息并添加到所述用户头像列表中。
3.根据权利要求1所述的用户头像同步方法,其特征在于,基于所述当前用户头像对应的用户标识和头像网络地址,判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与所述头像网络地址是否一致,包括:
从所述用户头像列表中确定出与所述当前用户头像对应的用户标识一致的目标用户标识;
将所述目标用户标识对应的目标用户头像的目标网络地址,与所述头像网络地址进行比对,判断所述目标网络地址与所述头像网络地址是否一致。
4.根据权利要求3所述的用户头像同步方法,其特征在于,缓存所述当前用户头像,并基于所述当前用户头像刷新已加载显示页面的用户头像,包括:
将所述当前用户头像添加到AvatarImageView内进行缓存;
从缓存中确定出所述目标用户标识对应的所有目标用户头像;
基于所述当前用户头像对所有目标用户头像进行刷新,从而加载所述当前用户头像作为每个已加载显示页面中的用户头像。
5.根据权利要求4所述的用户头像同步方法,其特征在于,在加载所述当前用户头像作为每个已加载显示页面中的用户头像后,所述方法还包括:
在检测到用户头像被移出显示页面时,将AvatarImageView内缓存的该显示页面的用户头像从缓存中清除;
在客户端退出任一显示页面时,将AvatarImageView内缓存的该显示页面的用户头像从缓存中清除。
6.一种用于用户头像同步的头像辅助类的构建方法,其特征在于,包括:
创建继承于原图片显示类ImageView的头像辅助类AvatarImageView,并在AvatarImageView内设置检测函数,其中,AvatarImageView用于缓存头像View,每个头像View绑定有对应的用户标识userID和头像网络地址showUrl,以及,设置有用于刷新头像View的callback;
在AvatarImageView中针对头像View加载图片的关键函数中进行插桩,用于触发AvatarImageView缓存该头像View,并触发检测函数运行,以使检测函数通过检测头像View对应的userID确定对应的用户,以在AvatarImageView已缓存的头像View中确定出该用户的所有头像View并执行callback刷新头像。
7.根据权利要求6所述的用于用户头像同步的头像辅助类的构建方法,其特征在于,在AvatarImageView内创建一个容器AvatarViewList,用于缓存已显示的头像View。
8.一种用户头像同步装置,其特征在于,加载客户端内预置的继承于原图片显示类ImageView的头像辅助类AvatarImageView,所述装置应用于AvatarImageView,包括:
获取模块,用于获取新加载显示页面中当前用户头像对应的用户标识和头像网络地址;
判断模块,用于基于所述当前用户头像对应的用户标识和头像网络地址,判断此用户标识在用户头像列表中对应的目标用户头像的目标网络地址与所述头像网络地址是否一致,其中,所述用户头像列表位于AvatarImageView内,包括已加载显示页面内的多个用户标识及每个用户标识对应的用户头像的网络地址;
头像刷新模块,用于在目标网络地址与头像网络地址不一致时,缓存所述当前用户头像,并基于所述当前用户头像刷新已加载显示页面的用户头像。
9.一种存储介质,其特征在于,所述存储介质设置在设备内,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1~5中任一项所述的用户头像同步方法,或者执行权利要求6~7中任一项所述的用于用户头像同步的头像辅助类的构建方法。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时实现权利要求1~5中任一项所述的用户头像同步方法,或者实现执行权利要求6~7中任一项所述的用于用户头像同步的头像辅助类的构建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111489507.4A CN114338709B (zh) | 2021-12-07 | 2021-12-07 | 一种用户头像同步方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111489507.4A CN114338709B (zh) | 2021-12-07 | 2021-12-07 | 一种用户头像同步方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338709A CN114338709A (zh) | 2022-04-12 |
CN114338709B true CN114338709B (zh) | 2023-08-29 |
Family
ID=81050312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111489507.4A Active CN114338709B (zh) | 2021-12-07 | 2021-12-07 | 一种用户头像同步方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338709B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004166279A (ja) * | 2003-11-11 | 2004-06-10 | Bandai Co Ltd | 画像配信システム及びその方法 |
CN103118355A (zh) * | 2013-01-17 | 2013-05-22 | 北京奇虎科技有限公司 | 一种移动终端用户信息的显示方法、移动终端和服务系统 |
WO2015043463A1 (en) * | 2013-09-27 | 2015-04-02 | Tencent Technology (Shenzhen) Company Limited | Synchronizing customized user information |
CN105554064A (zh) * | 2015-12-03 | 2016-05-04 | 小米科技有限责任公司 | 设置头像的方法及装置 |
CN107247796A (zh) * | 2017-06-23 | 2017-10-13 | 泰康保险集团股份有限公司 | 客户头像加载方法、装置及终端设备 |
CN107545006A (zh) * | 2016-06-28 | 2018-01-05 | 百度在线网络技术(北京)有限公司 | 一种用于建立或更新图像定位数据库的方法、设备与系统 |
CN109562298A (zh) * | 2016-06-30 | 2019-04-02 | 索尼互动娱乐股份有限公司 | 自动人工智能(ai)个人助理法 |
WO2020226785A1 (en) * | 2019-05-06 | 2020-11-12 | Apple Inc. | Avatar integration with multiple applications |
CN111930473A (zh) * | 2020-09-25 | 2020-11-13 | 亮风台(上海)信息科技有限公司 | 在容器云上部署图像识别服务的方法与设备 |
CN112422407A (zh) * | 2020-10-27 | 2021-02-26 | 广州趣丸网络科技有限公司 | 一种语音房间跟随方法、装置、设备和存储介质 |
CN112965690A (zh) * | 2020-12-17 | 2021-06-15 | 贵阳语玩科技有限公司 | Ui资源动态更新方法、装置、存储介质及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI20185300A1 (fi) * | 2018-03-29 | 2019-09-30 | Ownsurround Ltd | Järjestely päähän liittyvien siirtofunktiosuodattimien muodostamiseksi |
-
2021
- 2021-12-07 CN CN202111489507.4A patent/CN114338709B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004166279A (ja) * | 2003-11-11 | 2004-06-10 | Bandai Co Ltd | 画像配信システム及びその方法 |
CN103118355A (zh) * | 2013-01-17 | 2013-05-22 | 北京奇虎科技有限公司 | 一种移动终端用户信息的显示方法、移动终端和服务系统 |
WO2015043463A1 (en) * | 2013-09-27 | 2015-04-02 | Tencent Technology (Shenzhen) Company Limited | Synchronizing customized user information |
CN105554064A (zh) * | 2015-12-03 | 2016-05-04 | 小米科技有限责任公司 | 设置头像的方法及装置 |
CN107545006A (zh) * | 2016-06-28 | 2018-01-05 | 百度在线网络技术(北京)有限公司 | 一种用于建立或更新图像定位数据库的方法、设备与系统 |
CN109562298A (zh) * | 2016-06-30 | 2019-04-02 | 索尼互动娱乐股份有限公司 | 自动人工智能(ai)个人助理法 |
CN107247796A (zh) * | 2017-06-23 | 2017-10-13 | 泰康保险集团股份有限公司 | 客户头像加载方法、装置及终端设备 |
WO2020226785A1 (en) * | 2019-05-06 | 2020-11-12 | Apple Inc. | Avatar integration with multiple applications |
CN111930473A (zh) * | 2020-09-25 | 2020-11-13 | 亮风台(上海)信息科技有限公司 | 在容器云上部署图像识别服务的方法与设备 |
CN112422407A (zh) * | 2020-10-27 | 2021-02-26 | 广州趣丸网络科技有限公司 | 一种语音房间跟随方法、装置、设备和存储介质 |
CN112965690A (zh) * | 2020-12-17 | 2021-06-15 | 贵阳语玩科技有限公司 | Ui资源动态更新方法、装置、存储介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
Android平台下快速加载图文信息的研究与实现;王结;魏振钢;;计算机系统应用(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114338709A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102255138B1 (ko) | 메시지 처리 방법과 장치, 저장 매체, 및 컴퓨터 장치 | |
CN110515572B (zh) | 投屏方法、装置、存储介质和计算机设备 | |
CN109918345B (zh) | 文档处理方法、装置、终端及存储介质 | |
US8943164B2 (en) | Apparatus and methods for retrieving/ downloading content on a communication device | |
CN106168874B (zh) | 一种基于网页的彩信编辑方法和装置 | |
CN101193074A (zh) | 一种在即时通信展示框上显示图片的方法和系统 | |
CN113157366B (zh) | 动画播放方法、装置、电子设备和存储介质 | |
CN113014934A (zh) | 产品展示方法、产品展示装置、计算机设备及存储介质 | |
EP4080507A1 (en) | Method and apparatus for editing object, electronic device and storage medium | |
CN107707985B (zh) | 一种弹幕控制方法、移动终端及服务器 | |
CN108933947B (zh) | 弹幕显示方法及装置 | |
CN110971974B (zh) | 配置参数创建方法、装置、终端及存储介质 | |
US9942287B2 (en) | Information processing system, terminal device, and method | |
CN113254753B (zh) | 一种页面回退方法、装置、电子设备及存储介质 | |
CN114338709B (zh) | 一种用户头像同步方法、装置、存储介质及电子设备 | |
CN113449494B (zh) | 一种数据处理方法、装置以及可读存储介质 | |
CN112035206B (zh) | 一种消息处理方法及设备 | |
JP2010182074A (ja) | ファイル共有システム、ファイル共有方法及びそのプログラム | |
CN113868575A (zh) | 一种网页同屏方法与系统 | |
CN112861041B (zh) | 一种媒体内容的展示方法、装置、电子设备及存储介质 | |
CN116366907A (zh) | 界面交互的方法、装置、设备和存储介质 | |
CN110704157B (zh) | 一种应用启动方法、相关装置及介质 | |
CN114090925A (zh) | 一种视觉类主题的切换方法、装置、电子设备及存储介质 | |
CN113037618A (zh) | 图像分享方法及装置 | |
CN114063863B (zh) | 视频处理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |