CN109165067B - Android横竖屏数据同步方法、装置、终端及可读介质 - Google Patents

Android横竖屏数据同步方法、装置、终端及可读介质 Download PDF

Info

Publication number
CN109165067B
CN109165067B CN201810889906.1A CN201810889906A CN109165067B CN 109165067 B CN109165067 B CN 109165067B CN 201810889906 A CN201810889906 A CN 201810889906A CN 109165067 B CN109165067 B CN 109165067B
Authority
CN
China
Prior art keywords
data sharing
screen state
screen
enumeration
data
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
Application number
CN201810889906.1A
Other languages
English (en)
Other versions
CN109165067A (zh
Inventor
张磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Youplay Network Technology Co ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810889906.1A priority Critical patent/CN109165067B/zh
Publication of CN109165067A publication Critical patent/CN109165067A/zh
Application granted granted Critical
Publication of CN109165067B publication Critical patent/CN109165067B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种Android横竖屏数据同步方法、装置、终端及可读介质,其中该方法包括:根据接收的切换指令将第一屏幕状态的业务控件切换为第二屏幕状态的业务控件,并根据第二屏幕状态对数据共享对象中屏幕状态的枚举变量进行赋值;获取数据共享对象中的业务控件变量,并根据业务控件变量设置第二屏幕状态的业务控件信息;根据接收的更新消息更新数据共享对象中的业务控件变量,并通过枚举变量对应的数据共享协议将更新后的业务控件变量发送至第二屏幕状态,以更新第二屏幕状态的业务控件信息。本发明实施例提供的Android横竖屏数据同步方法、装置、终端及可读介质,实现了Android横竖屏数据同步,提升了数据同步稳定性,避免了数据同步异常的情况。

Description

Android横竖屏数据同步方法、装置、终端及可读介质
技术领域
本发明实施例涉及计算机技术,尤其涉及一种Android横竖屏数据同步方法、装置、终端及可读介质。
背景技术
通常Android终端横竖屏切换方法为,完全关闭横/竖屏后再加载竖/横屏,即横屏和竖屏间的业务逻辑是完全分离的。若要完成横屏与竖屏切换时的数据同步,需要在将横/竖屏关闭前将横/竖屏中所有业务状态信息进行复制,复制的业务状态信息用于竖/横屏加载时实现数据同步。若实现多次横屏与竖屏切换,则需要多次复制横/竖屏中所有业务状态信息,容易导致业务功能紊乱,且可能出现数据同步异常的情况。
发明内容
有鉴于此,本发明实施例提供了一种Android横竖屏数据同步方法、装置、终端及可读介质,实现了Android横竖屏数据同步,提升了数据同步稳定性,避免了数据同步异常的情况。
第一方面,本发明实施例提供了一种Android横竖屏数据同步方法,包括:
接收切换指令,根据所述切换指令将第一屏幕状态的业务控件切换为第二屏幕状态的业务控件,并根据第二屏幕状态对数据共享对象中屏幕状态的枚举变量进行赋值;
获取数据共享对象中的业务控件变量,并根据所述业务控件变量设置第二屏幕状态的业务控件信息,其中所述数据共享对象为数据共享器类的静态全局变量对象;
当接收到业务控件变量的更新消息时,根据所述更新消息更新数据共享对象中的业务控件变量,并通过所述屏幕状态的枚举变量所对应的数据共享协议将更新后的业务控件变量发送至第二屏幕状态,以更新第二屏幕状态的业务控件信息。
可选的,在所述接收切换指令之前,还包括:
在第一屏幕状态首次被打开时,在Activity的生命周期函数onCreate函数中调用控件加载方法加载第一屏幕状态的业务控件;
在第二屏幕状态首次被打开时,在Activity的生命周期函数onCreate函数中调用控件加载方法加载第二屏幕状态的业务控件。
可选的,在所述接收切换指令之前,还包括:
调用共享器类定义方法定义数据共享器类;
调用数据共享对象定义方法定义数据共享器类的数据共享对象;
在数据共享对象中调用业务控件变量定义方法定义业务控件变量,并初始化业务控件变量,且当接收到业务控件变量的更新消息时,根据所述更新消息更新业务控件变量;
在数据共享对象中调用枚举定义方法定义枚举常量表以及屏幕状态的枚举变量,其中所述枚举常量表中的枚举常量与各屏幕状态相对应,其中将所述枚举常量表中的枚举常量赋值给所述屏幕状态的枚举变量。
可选的,在所述接收切换指令之前,还包括:
调用预定义的数据共享对象获取方法判断是否可以获取到数据共享对象;
若是,则调用返回方法将获取到的数据共享对象进行返回;
若否,则调用数据共享对象实例化方法构造数据共享对象,并调用返回方法将构造好的数据共享对象进行返回。
可选的,在所述接收切换指令之前,还包括:
在数据共享对象中调用协议定义方法定义屏幕状态的枚举变量所对应的数据共享协议,并将所述屏幕状态的枚举变量所对应的数据共享协议复写到相应的屏幕状态中。
可选的,所述获取数据共享对象中的业务控件变量,包括:
通过预定义的业务控件变量获取方法获取数据共享对象中的业务控件变量。
可选的,当所述第一屏幕状态为竖屏时,所述第二屏幕状态为横屏;当所述第一屏幕状态为横屏时,所述第二屏幕状态为竖屏。
第二方面,本发明实施例提供了一种Android横竖屏数据同步装置,包括:
业务控件切换模块,用于接收切换指令,根据所述切换指令将第一屏幕状态的业务控件切换为第二屏幕状态的业务控件,并根据第二屏幕状态对数据共享对象中屏幕状态的枚举变量进行赋值;
业务控件信息设置模块,用于获取数据共享对象中的业务控件变量,并根据所述业务控件变量设置第二屏幕状态的业务控件信息,其中所述数据共享对象为数据共享器类的静态全局变量对象;
业务控件信息更新模块,用于当接收到业务控件变量的更新消息时,根据所述更新消息更新数据共享对象中的业务控件变量,并通过所述屏幕状态的枚举变量所对应的数据共享协议将更新后的业务控件变量发送至第二屏幕状态,以更新第二屏幕状态的业务控件信息。
第三方面,本发明实施例提供了一种终端,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例所述的Android横竖屏数据同步方法。
第四方面,本发明实施例提供了一种可读介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例所述的Android横竖屏数据同步方法。
本发明实施例提供的一种Android横竖屏数据同步方法、装置、终端及可读介质,当第一屏幕状态切换到第二屏幕状态时,将屏幕状态的枚举变量赋值,通过枚举变量标识屏幕切换后的屏幕状态(即第二屏幕状态);第二屏幕状态可以获取数据共享对象中的业务控件变量,也就是切换时业务控件变量的当前值,并根据获取的业务控件变量设置业务控件信息;当数据共享对象中的业务控件变量根据更新消息进行更新时,通过屏幕状态的枚举变量对应的数据共享协议将更新后的业务控件变量发送至第二屏幕状态,以更新第二屏幕状态的业务控件信息。通过设置数据共享对象实现了Android横竖屏切换后当前业务控件信息的同步,提升了数据同步稳定性,避免了数据同步异常的情况;通过设置屏幕状态的枚举变量实现了更新后的业务控件变量只定向发送给切换后的屏幕状态,避免了将更新后的业务控件变量发送至所有屏幕状态,减少了系统资源占用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种Android横竖屏数据同步方法流程图;
图2是本发明实施例二提供的一种Android横竖屏数据同步装置结构示意图;
图3是本发明实施例三提供的一种终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式清楚、完整地描述本发明的技术方案,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1是本发明实施例一提供的一种Android横竖屏数据同步方法流程图,本实施例可适用于Android横竖屏数据同步的情况,该方法可以由终端实现,具体可通过终端中的软件和/或硬件来实施。
参见图1,该Android横竖屏数据同步方法包括如下步骤:
S110、接收切换指令,根据切换指令将第一屏幕状态的业务控件切换为第二屏幕状态的业务控件,并根据第二屏幕状态对数据共享对象中屏幕状态的枚举变量进行赋值。
在Android终端横竖屏切换时,横竖屏中多个业务控件需要进行业务控件信息的同步,其中业务控件可以包括进度条控件、音量调节控件以及亮度调节控件等等,相应的业务控件信息可以是进度条控件信息、音量调节控件信息以及亮度调节控件信息等等,例如可以是进度条控件的播放进度信息、音量调节控件的音量大小信息以及亮度调节控件的屏幕亮暗信息等等。本发明实施例中以进度条控件信息在横竖屏切换时的同步方法为例进行阐述,其他业务控件信息在横竖屏切换时的同步过程可参照进度条控件信息的同步过程。
其中,切换指令可以是通过用户按压Android终端的物理按键生成的,也可以是通过用户触摸Android终端用户界面上的虚拟按键生成的,还可以是通过Android终端内置陀螺仪等方向传感器感应到Android终端放置方向变化后生成的。Android终端接收到切换指令后,可以根据指令进行屏幕状态切换,也可以理解为将第一屏幕状态的业务控件切换为第二屏幕状态的业务控件,其中第一屏幕状态的业务控件和第二屏幕状态的业务控件可以是已经加载好,并存储于终端内存中的业务控件。其中,当第一/二屏幕状态的业务控件加载好之后,可以处理更新消息,用以进行业务控件信息的更新操作。
其中,可以预先定义屏幕状态的枚举常量表,可以理解为枚举常量表中列举出了所有的屏幕状态对应的枚举常量,其中枚举常量可以包括横屏枚举常量以及竖屏枚举常量。其中,枚举常量与枚举值存在一一对应的关系,也就是说各枚举常量的枚举值皆不相同。其中,枚举常量表中第一个枚举常量的枚举值为0,第二个枚举常量的枚举值为1,第三个枚举常量的枚举值为2,以此类推,第N个枚举常量的枚举值为N-1。
其中,可以将枚举常量表中各屏幕状态对应的枚举常量赋值给枚举变量,用来表示屏幕切换后的屏幕状态(即第二屏幕状态),当第二屏幕状态为横屏时,则将横屏对应的枚举常量赋值给枚举变量,当第二屏幕状态为竖屏时,将竖屏对应的枚举常量赋值为枚举变量。其中,可以预先设置屏幕状态与枚举常量的对应关系。其中,在接收到切换指令后,可以根据切换指令获取切换后的屏幕状态,并将切换后的屏幕状态对应的枚举常量赋值给枚举变量;由于屏幕状态只有横屏和竖屏两个状态,因此还可以在接收到切换指令后,直接将另一屏幕状态对应的枚举常量赋值给枚举变量。
其中,枚举变量赋值方法可以包括:1.将枚举常量直接赋值给枚举变量;2.通过枚举常量在枚举常量表中的枚举值,将枚举常量赋值给枚举变量。示例性的,枚举常量表为A{a,b},枚举变量为c,则方法1为c=a,或c=b;而方法2为c=(A)0,或c=(A)1,其中(A)0表示枚举常量表A中的第一个枚举常量a,(A)1表示枚举常量表A中的第二个枚举常量b。
通过赋值后的枚举变量,可以确定进行屏幕切换后的屏幕状态,为选择屏幕状态对应的数据共享协议奠定了基础,有助于更新后的业务控件变量传输至切换后的屏幕状态,避免了将更新后的业务控件变量发送至所有屏幕状态,减少了系统资源占用。
可选的,在接收切换指令之前,还包括:
在第一屏幕状态首次被打开时,在Activity的生命周期函数onCreate函数中调用控件加载方法加载第一屏幕状态的业务控件;在第二屏幕状态首次被打开时,在Activity的生命周期函数onCreate函数中调用控件加载方法加载第二屏幕状态的业务控件。
其中,Activity可以理解为Android系统中的显示页面信息,Android终端需要在Activity的生命周期函数onCreate函数中来实现对进度条控件以及其他业务控件的加载操作,其中onCreate函数可以是Android终端在启动Activity的时候自动进行调用的。示例性的,在Activity的生命周期函数onCreate函数中调用控件加载方法加载进度条控件,具体可以是:
ProgressBar progressBar=(ProgressBar)findViewByid(R.id.progress);
其中,findViewByid可以理解为进度条业务控件是根据id进行加载的;R.id.progress可以理解为预定义的进度条id信息;其中,在根据控件加载方法加载后,可以得到一个ProgressBar类型的progressBar对象信息;其中,ProgressBar类型也可以是预先定义的类。
其中,若首次打开的为第一屏幕状态,则首先加载第一屏幕状态的业务控件,当首次从第一屏幕状态切换为第二屏幕状态时,则加载第二屏幕状态的业务控件;若首次打开的为第二屏幕状态,则首先加载第二屏幕状态的业务控件,当首次从第二屏幕状态切换为第一屏幕状态时,则加载第一屏幕状态的业务控件。其中,当第一/二屏幕状态首次加载业务控件后,存储于终端内存中,等再次切换到第一/二屏幕状态时,无需重复加载业务控件。
通过预先加载第一/二屏幕状态的业务控件,可以使横竖屏数据同步更加便捷,在同步过程中无需复制第一/二屏幕状态下所有数据信息,提升了数据同步稳定性,避免了数据同步异常的情况。
S120、获取数据共享对象中的业务控件变量,并根据业务控件变量设置第二屏幕状态的业务控件信息,其中数据共享对象为数据共享器类的静态全局变量对象。
其中,数据共享器类可以预先定义,在定义好数据共享器类后,可以创建数据共享器类对象,即数据共享对象。其中,可以在数据共享对象中定义业务控件变量,可以理解为一个数据共享对象对应一个业务控件,在一个数据共享对象中可以存储对应业务控件的业务控件数据。其中,数据共享对象为静态全局变量对象,可以理解为任意函数获取该数据共享对象时,皆可以获取到同一个数据共享对象。因此,从第一屏幕状态切换为第二屏幕状态时第二屏幕获取的数据共享对象,与后续第二屏幕状态切换回第一屏幕状态时第一屏幕状态获取的数据共享对象是相同的对象。
可选的,在接收切换指令之前,还包括:
调用共享器类定义方法定义数据共享器类;调用数据共享对象定义方法定义数据共享器类的数据共享对象;在数据共享对象中调用业务控件变量定义方法定义业务控件变量,并初始化业务控件变量,且当接收到业务控件变量的更新消息时,根据更新消息更新业务控件变量;在数据共享对象中调用枚举定义方法定义枚举常量表以及屏幕状态的枚举变量,其中枚举常量表中的枚举常量与各屏幕状态相对应,其中将枚举常量表中的枚举常量赋值给屏幕状态的枚举变量。
其中,调用共享器类定义方法定义数据共享器类,具体可以是:
通过调用Public Class DataShare{}方法定义数据共享器类。其中,数据共享器类为Public共有类型,使得其他类具备该数据共享类的访问权限。其中,数据共享器类的类名是DataShare,该共享器类的类名可以根据研发人员需求进行更改,在此不做限定。
其中,调用数据共享对象定义方法定义数据共享器类的数据共享对象,具体可以是:
通过调用public static DataShare mDataShare()方法定义数据共享对象。其中,数据共享器对象为Public共有类型,使得其他对象具备该数据共享对象的访问权限。其中,数据共享对象为static静态类型的,可以使得横竖屏切换后的屏幕状态皆获取同一个数据共享对象。其中,数据共享对象为数据共享器类DataShare的对象,名称为mDataShare,该共享器对象的名称可以根据研发人员需求进行更改,在此不做限定。
其中,在数据共享对象中调用业务控件变量定义方法定义业务控件变量,具体可以是:
通过调用private long progressValue方法定义业务控件变量。其中,业务控件变量为private long型变量,即为私有类型长整型变量。其中,业务控件变量名称为progressValue,即进度条控件变量,该业务控件名称还可以根据研发人员需求进行更改,在此不做限定。其中,定义好业务控件变量后,可以将业务控件变量值初始化为0。在数据共享对象接收到业务控件变量的更新消息时,数据共享对象中的业务控件变量可以根据更新消息进行更新。更新后的业务控件变量可以发送至当前的屏幕状态,且在当前屏幕状态进行横竖屏切换后,切换后的屏幕状态也可以从数据共享对象中获取最新的业务控件变量。通过获取数据共享对象中的业务控件变量,完成了切换前的屏幕状态与切换后的屏幕状态完成了在切换事件发生时的业务控件信息的同步。
其中,在数据共享对象中调用枚举定义方法定义枚举常量表以及屏幕状态的枚举变量,具体可以是:
private enum State{STATE_HIORIZONTAL,STATE_VERTICAL}mState;
其中,private表示枚举常量表以及屏幕状态的枚举变量为私有类型;其中enum表示为定义的State类型为枚举类型;其中,State为枚举常量表的名称,可以表示包含所有屏幕状态的枚举常量表,其中枚举常量表的名称还可以为其他名称,并不限于State;其中,STATE_HIORIZONTAL以及STATE_VERTICAL为枚举常量,其中枚举常量表中的枚举常量与各屏幕状态相对应,即STATE_HIORIZONTAL以及STATE_VERTICAL可分别对应横屏和竖屏,其中横屏和竖屏也可以用其他名称的枚举常量表示,并不限于STATE_HIORIZONTAL以及STATE_VERTICAL;其中,mState为枚举变量的名称,可以表示枚举变量,其中可以将枚举常量表中的枚举常量赋值给屏幕状态的枚举变量,即mState只能接收State中STATE_HIORIZONTAL以及STATE_VERTICAL的赋值,而不能接收其他赋值。通过mState的赋值信息即可判断出切换后的屏幕状态(即第二屏幕状态)为横屏还是竖屏。
可选的,在接收切换指令之前,还包括:
调用预定义的数据共享对象获取方法判断是否可以获取到数据共享对象;若是,则调用返回方法将获取到的数据共享对象进行返回;若否,则调用数据共享对象实例化方法构造数据共享对象,并调用返回方法将构造好的数据共享对象进行返回。
其中,具体可以通过调用Public DataShare getDataShare()方法进行数据共享对象获取方法的定义。其中,数据共享对象获取方法类型为Public共有类型,使得其他类具备该方法的访问权限。其中,数据共享对象获取方法可以返回getDataShare类型数据,且该方法没有入参参数。
其中,若通过数据共享对象获取方法可以获取数据共享对象,则证明数据共享对象已经进行实例化操作,则可以直接将获取到的数据共享对象进行返回,以使对数据共享对象进行相应的处理操作;若通过数据共享对象获取方法没有获取数据共享对象,即mDataShare==null,则证明数据共享对象还没有进行实例化操作,则可以调用实例化方法mDataShare=new DataShare()来进行数据共享对象的构造,并将构造好的数据共享对象进行返回,以使对数据共享对象进行相应的处理操作。其中,返回数据共享对象具体可以通过return mDataShare语句实现。
通过预定义的数据共享对象获取方法,可以判断数据共享对象是否已经实例化,从而避免了重新申请内存空间再次构建数据共享对象,节省了内存空间,且保证了数据共享对象的唯一性。
S130、当接收到业务控件变量的更新消息时,根据更新消息更新数据共享对象中的业务控件变量,并通过屏幕状态的枚举变量所对应的数据共享协议将更新后的业务控件变量发送至第二屏幕状态,以更新第二屏幕状态的业务控件信息。
其中,在第一屏幕状态切换为第二屏幕状态后,第二屏幕状态首先根据获取的数据共享对象中的业务控件变量进行业务控件信息的设置;并且在后续数据共享对象中业务控件变量进行改变时,还可以通过数据共享协议接收到更新后的业务控件变量,用以更新业务控件信息。
优选的,当第二屏幕状态获取业务控件变量的同时,数据共享对象接收到业务控件变量更新消息,则数据共享对象可以先进行业务控件变量的更新,再将更新后的业务控件变量发送至第二屏幕状态,从而减少了第二屏幕状态的业务控件信息的更新次数,避免了业务控件信息更新异常的情况。
可选的,在接收切换指令之前,还包括:
在数据共享对象中调用协议定义方法定义屏幕状态的枚举变量所对应的数据共享协议,并将屏幕状态的枚举变量所对应的数据共享协议复写到相应的屏幕状态中。
其中,屏幕状态的枚举变量所对应的数据共享协议,可以理解为屏幕切换后的屏幕状态所对应的数据共享协议,即第二屏幕状态对应的数据共享协议。其中,枚举常量表中每个枚举常量皆可对应一个数据共享协议。在本发明实施例中,每个枚举常量对应的数据共享协议,可以包括横屏数据共享协议IonProgressValueHorizontal以及竖屏数据共享协议IonProgressValueVertical。
其中,横屏数据共享协议IonProgressValueHorizontal以及竖屏数据共享协议IonProgressValueVertical,皆可通过如下的协议定义方法进行定义:
Public interface IonProgressValue{
Public void onProgressValueChanged(long progressValue);
};
其中,数据共享协议名称为IonProgressValue,其中数据共享协议名称还可以是IonProgressValueHorizontal或IonProgressValueVertical;在数据共享协议中定义了一个协议方法onProgressValueChanged,其中协议方法名称还可以是onProgressValueChangedHorizontal或onProgressValueChangedVertical;其中,协议方法中有一个long类型的参数信息progressValue,后续通过该参数将数据共享对象mDataShare中的progressValue的信息通知出去。其中,第二屏幕状态若为横屏,则要实现横屏数据共享协议IonProgressValueHorizontal,接收更新后的业务控件变量,则需要复写其中的协议方法onProgressValueChangedHorizontal;第二屏幕状态若为竖屏,则要实现横屏数据共享协议IonProgressValueVertical,接收更新后的业务控件变量,则需要复写其中的协议方法onProgressValueChangedVertical。相应的,第一屏幕状态若为横屏,则要实现横屏数据共享协议IonProgressValueHorizontal,接收更新后的业务控件变量,则需要复写其中的协议方法onProgressValueChangedHorizontal;第一屏幕状态若为竖屏,则要实现横屏数据共享协议IonProgressValueVertical,接收更新后的业务控件变量,则需要复写其中的协议方法onProgressValueChangedVertical。
通过定义不同屏幕状态对应的不同的数据共享协议,可以实现数据共享对象向屏幕切换后的屏幕状态发送更新后的业务控件变量信息,避免了将更新后的业务控件变量发送至所有屏幕状态,减少了系统资源占用。
可选的,获取数据共享对象中的业务控件变量,包括:
通过预定义的业务控件变量获取方法获取数据共享对象中的业务控件变量。
其中,具体可以通过调用Public long getProgressValue()进行业务控件变量获取方法的定义。其中,业务控件变量获取方法是一个public公有类型的函数,该函数的返回值是一个long类型的数据,在该函数的实现中通过调用return progressValue方法可以将私有变量progressValue的值信息返回出来。
可选的,当第一屏幕状态为竖屏时,第二屏幕状态为横屏;当第一屏幕状态为横屏时,第二屏幕状态为竖屏。
也就是说,可以是根据接收的切换指令将竖屏的业务控件切换为横屏的业务控件,将枚举变量赋值为横屏对应的枚举常量;获取数据共享对象中的业务控件变量,并根据业务控件变量设置横屏的业务控件信息;当接收到业务控件变量的更新消息时,根据更新消息更新数据共享对象中的业务控件变量,并通过横屏对应的数据共享协议将更新后的业务控件变量发送至横屏,以更新横屏的业务控件信息。还可以是根据接收的切换指令将横屏的业务控件切换为竖屏的业务控件,将枚举变量赋值为竖屏对应的枚举常量;获取数据共享对象中的业务控件变量,并根据业务控件变量设置竖屏的业务控件信息;当接收到业务控件变量的更新消息时,根据更新消息更新数据共享对象中的业务控件变量,并通过竖屏对应的数据共享协议将更新后的业务控件变量发送至竖屏,以更新竖屏的业务控件信息。
其中,第一屏幕状态和第二屏幕状态的业务控件加载方法,第一屏幕状态和第二屏幕状态的数据共享协议复写方式,以及第一屏幕状态和第二屏幕状态通过业务控件变量方法获取数据共享对象中业务变量,皆可以认为是思路相同的方法或方式,即在第一屏幕状态和第二屏幕状态皆可使用思路相同的方法以实现相同目的的操作。
本实施例提供的Android横竖屏数据同步方法,当第一屏幕状态切换到第二屏幕状态时,将屏幕状态的枚举变量赋值,通过枚举变量标识屏幕切换后的屏幕状态(即第二屏幕状态);第二屏幕状态可以获取数据共享对象中的业务控件变量,也就是切换时业务控件变量的当前值,并根据获取的业务控件变量设置业务控件信息;当数据共享对象中的业务控件变量根据更新消息进行更新时,通过屏幕状态的枚举变量对应的数据共享协议将更新后的业务控件变量发送至第二屏幕状态,以更新第二屏幕状态的业务控件信息。通过设置数据共享对象实现了Android横竖屏切换后当前业务控件信息的同步,提升了数据同步稳定性,避免了数据同步异常的情况;通过设置屏幕状态的枚举变量实现了更新后的业务控件变量只定向发送给切换后的屏幕状态,避免了将更新后的业务控件变量发送至所有屏幕状态,减少了系统资源占用。
实施例二
图2是本发明实施例二提供的一种Android横竖屏数据同步装置结构示意图,本实施例可适用于Android横竖屏数据同步的情况。
参见图2,本实施例中Android横竖屏数据同步装置,包括:
业务控件切换模块210,用于接收切换指令,根据切换指令将第一屏幕状态的业务控件切换为第二屏幕状态的业务控件,并根据第二屏幕状态对数据共享对象中屏幕状态的枚举变量进行赋值;
业务控件信息设置模块220,用于获取数据共享对象中的业务控件变量,并根据业务控件变量设置第二屏幕状态的业务控件信息,其中数据共享对象为数据共享器类的静态全局变量对象;
业务控件信息更新模块230,用于当接收到业务控件变量的更新消息时,根据更新消息更新数据共享对象中的业务控件变量,并通过屏幕状态的枚举变量所对应的数据共享协议将更新后的业务控件变量发送至第二屏幕状态,以更新第二屏幕状态的业务控件信息。
可选的,Android横竖屏数据同步装置,还包括:
业务控件加载模块,用于在第一屏幕状态首次被打开时,在Activity的生命周期函数onCreate函数中调用控件加载方法加载第一屏幕状态的业务控件;还用于在第二屏幕状态首次被打开时,在Activity的生命周期函数onCreate函数中调用控件加载方法加载第二屏幕状态的业务控件。
可选的,Android横竖屏数据同步装置,还包括:
共享器类定义模块,用于调用共享器类定义方法定义数据共享器类;
共享对象定义模块,用于调用数据共享对象定义方法定义数据共享器类的数据共享对象;
业务控件变量定义模块,用于在数据共享对象中调用业务控件变量定义方法定义业务控件变量,并初始化业务控件变量,且当接收到业务控件变量的更新消息时,根据更新消息更新业务控件变量;
枚举变量定义模块,用于在数据共享对象中调用枚举定义方法定义枚举常量表以及屏幕状态的枚举变量,其中枚举常量表中的枚举常量与各屏幕状态相对应,其中将枚举常量表中的枚举常量赋值给屏幕状态的枚举变量。
可选的,Android横竖屏数据同步装置,还包括:
共享对象获取模块,用于调用预定义的数据共享对象获取方法判断是否可以获取到数据共享对象;若是,则调用返回方法将获取到的数据共享对象进行返回;若否,则调用数据共享对象实例化方法构造数据共享对象,并调用返回方法将构造好的数据共享对象进行返回。
可选的,Android横竖屏数据同步装置,还包括:
数据共享协议定义模块,用于在数据共享对象中调用协议定义方法定义屏幕状态的枚举变量所对应的数据共享协议,并将屏幕状态的枚举变量所对应的数据共享协议复写到相应的屏幕状态中。
可选的,业务控件信息设置模块220,具体用于:
通过预定义的业务控件变量获取方法获取数据共享对象中的业务控件变量。
可选的,当第一屏幕状态为竖屏时,第二屏幕状态为横屏;当第一屏幕状态为横屏时,第二屏幕状态为竖屏。
本实施例提供的Android横竖屏数据同步装置,与实施例一提出的Android横竖屏数据同步方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见实施例一,并且本实施例与实施例一具有相同的有益效果。
实施例三
本实施例提供了一种终端,可以用于Android横竖屏数据同步的情况。图3是本发明实施例三提供的一种终端的结构示意图。参见图3,该终端包括:
一个或多个处理器310;
存储器320,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器310执行,使得所述一个或多个处理器310实现如实施例一提出的Android横竖屏数据同步方法。
图3中以一个处理器310为例;处理器310和存储器320可以通过总线或其他方式连接,图3中以通过总线连接为例。
存储器320作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的Android横竖屏数据同步方法对应的程序指令/模块。处理器310通过运行存储在存储器320中的软件程序、指令以及模块,从而执行终端的各种功能应用以及数据处理,即实现上述的Android横竖屏数据同步方法。
存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本实施例提出的终端与实施例一提出的Android横竖屏数据同步方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见实施例一,并且本实施例与实施例一具有相同的有益效果。
实施例四
本实施例提供一种可读介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例一提出的Android横竖屏数据同步方法。
本实施例提出的可读介质与实施例一提出的Android横竖屏数据同步方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见实施例一,并且本实施例与实施例一具有相同的有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种Android横竖屏数据同步方法,其特征在于,包括:
调用共享器类定义方法定义数据共享器类;
调用数据共享对象定义方法定义数据共享器类的数据共享对象;
接收切换指令,根据所述切换指令将第一屏幕状态的业务控件切换为第二屏幕状态的业务控件,并根据第二屏幕状态对数据共享对象中屏幕状态的枚举变量进行赋值;
获取数据共享对象中的业务控件变量,并根据所述业务控件变量设置第二屏幕状态的业务控件信息,其中所述数据共享对象为数据共享器类的静态全局变量对象;
当接收到业务控件变量的更新消息时,根据所述更新消息更新数据共享对象中的业务控件变量,并通过所述屏幕状态的枚举变量所对应的数据共享协议将更新后的业务控件变量发送至第二屏幕状态,以更新第二屏幕状态的业务控件信息。
2.根据权利要求1所述的方法,其特征在于,在所述接收切换指令之前,还包括:
在第一屏幕状态首次被打开时,在Activity的生命周期函数onCreate函数中调用控件加载方法加载第一屏幕状态的业务控件;
在第二屏幕状态首次被打开时,在Activity的生命周期函数onCreate函数中调用控件加载方法加载第二屏幕状态的业务控件。
3.根据权利要求1所述的方法,其特征在于,在所述接收切换指令之前,还包括:
在数据共享对象中调用业务控件变量定义方法定义业务控件变量,并初始化业务控件变量,且当接收到业务控件变量的更新消息时,根据所述更新消息更新业务控件变量;
在数据共享对象中调用枚举定义方法定义枚举常量表以及屏幕状态的枚举变量,其中所述枚举常量表中的枚举常量与各屏幕状态相对应,其中将所述枚举常量表中的枚举常量赋值给所述屏幕状态的枚举变量。
4.根据权利要求1所述的方法,其特征在于,在所述接收切换指令之前,还包括:
调用预定义的数据共享对象获取方法判断是否可以获取到数据共享对象;
若是,则调用返回方法将获取到的数据共享对象进行返回;
若否,则调用数据共享对象实例化方法构造数据共享对象,并调用返回方法将构造好的数据共享对象进行返回。
5.根据权利要求1所述的方法,其特征在于,在所述接收切换指令之前,还包括:
在数据共享对象中调用协议定义方法定义屏幕状态的枚举变量所对应的数据共享协议,并将所述屏幕状态的枚举变量所对应的数据共享协议复写到相应的屏幕状态中。
6.根据权利要求1所述的方法,其特征在于,所述获取数据共享对象中的业务控件变量,包括:
通过预定义的业务控件变量获取方法获取数据共享对象中的业务控件变量。
7.根据权利要求1-6任一所述的方法,其特征在于,当所述第一屏幕状态为竖屏时,所述第二屏幕状态为横屏;当所述第一屏幕状态为横屏时,所述第二屏幕状态为竖屏。
8.一种Android横竖屏数据同步装置,其特征在于,包括:
共享器类定义模块,用于调用共享器类定义方法定义数据共享器类;
共享对象定义模块,用于调用数据共享对象定义方法定义数据共享器类的数据共享对象;
业务控件切换模块,用于接收切换指令,根据所述切换指令将第一屏幕状态的业务控件切换为第二屏幕状态的业务控件,并根据第二屏幕状态对数据共享对象中屏幕状态的枚举变量进行赋值;
业务控件信息设置模块,用于获取数据共享对象中的业务控件变量,并根据所述业务控件变量设置第二屏幕状态的业务控件信息,其中所述数据共享对象为数据共享器类的静态全局变量对象;
业务控件信息更新模块,用于当接收到业务控件变量的更新消息时,根据所述更新消息更新数据共享对象中的业务控件变量,并通过所述屏幕状态的枚举变量所对应的数据共享协议将更新后的业务控件变量发送至第二屏幕状态,以更新第二屏幕状态的业务控件信息。
9.一种终端,其特征在于,所述终端包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的Android横竖屏数据同步方法。
10.一种可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的Android横竖屏数据同步方法。
CN201810889906.1A 2018-08-07 2018-08-07 Android横竖屏数据同步方法、装置、终端及可读介质 Active CN109165067B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810889906.1A CN109165067B (zh) 2018-08-07 2018-08-07 Android横竖屏数据同步方法、装置、终端及可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810889906.1A CN109165067B (zh) 2018-08-07 2018-08-07 Android横竖屏数据同步方法、装置、终端及可读介质

Publications (2)

Publication Number Publication Date
CN109165067A CN109165067A (zh) 2019-01-08
CN109165067B true CN109165067B (zh) 2021-11-09

Family

ID=64895262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810889906.1A Active CN109165067B (zh) 2018-08-07 2018-08-07 Android横竖屏数据同步方法、装置、终端及可读介质

Country Status (1)

Country Link
CN (1) CN109165067B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110392063B (zh) * 2019-08-27 2022-04-01 深圳市威屏科技有限公司 电子白板数据同步方法、装置、设备及介质
CN112579033B (zh) * 2019-09-27 2024-09-20 阿里巴巴集团控股有限公司 业务对象切换方法、装置、电子设备及计算机存储介质
CN114327319A (zh) * 2020-09-30 2022-04-12 武汉斗鱼网络科技有限公司 一种屏幕切换的处理方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015123891A1 (zh) * 2014-02-24 2015-08-27 华为技术有限公司 多页面管理方法和装置
CN106973330A (zh) * 2017-03-20 2017-07-21 腾讯科技(深圳)有限公司 一种屏幕直播方法、装置和系统
CN107247746A (zh) * 2017-05-23 2017-10-13 努比亚技术有限公司 一种数据分享方法及终端

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070086433A1 (en) * 2005-10-19 2007-04-19 Cunetto Philip C Methods and apparatus for allocating shared communication resources to outdial communication services
US20100100889A1 (en) * 2008-10-16 2010-04-22 International Business Machines Corporation Accelerating mutual exclusion locking function and condition signaling while maintaining priority wait queues
US8868849B2 (en) * 2011-08-17 2014-10-21 Samsung Electronics Co., Ltd. Coupled lock allocation and lookup for shared data synchronization in symmetric multithreading environments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015123891A1 (zh) * 2014-02-24 2015-08-27 华为技术有限公司 多页面管理方法和装置
CN106973330A (zh) * 2017-03-20 2017-07-21 腾讯科技(深圳)有限公司 一种屏幕直播方法、装置和系统
CN107247746A (zh) * 2017-05-23 2017-10-13 努比亚技术有限公司 一种数据分享方法及终端

Also Published As

Publication number Publication date
CN109165067A (zh) 2019-01-08

Similar Documents

Publication Publication Date Title
US10061619B2 (en) Thread pool management
WO2022062650A1 (zh) 基于kubernetes的计算设备共享方法、装置、设备及存储介质
CN109165067B (zh) Android横竖屏数据同步方法、装置、终端及可读介质
CN110489126B (zh) 编译任务的执行方法和装置、存储介质及电子装置
CN109213462B (zh) Android横竖屏数据同步方法、装置、终端及可读介质
CN106469071B (zh) 应用程序主题更换方法及装置
CN114422350B (zh) 一种公共云容器实例创建方法
CN111800468A (zh) 一种基于云的多集群管理方法、装置、介质及电子设备
CN114448895B (zh) 一种应用访问方法、装置、设备及介质
WO2021238301A1 (zh) 一种应用更新方法、装置、设备及介质
CN108073423A (zh) 一种加速器加载方法、系统和加速器加载装置
CN114138908A (zh) 数据同步方法、装置、终端及存储介质
CN109144638B (zh) Android横竖屏数据同步方法、装置、终端及可读介质
CN115686346A (zh) 一种数据存储方法、设备及计算机可读存储介质
CN112199192A (zh) 基于服务器部署Kubernetes集群精细化管理配额的方法及系统
CN110324722B (zh) 直播间中数据的获取方法、装置、设备和存储介质
CN110928397A (zh) 用户界面刷新方法、装置、存储介质及电子装置
CN113010326B (zh) 分布式锁的处理方法及装置、电子设备、存储介质
CN109189498B (zh) Android横竖屏数据同步方法、装置、终端及可读介质
CN114222003A (zh) 服务调用方法、系统、装置、设备及存储介质
CN110113217B (zh) 微服务管理方法、装置、管理平台及存储介质
CN116743762A (zh) 服务注册集群流量切换方法、流量切换装置及存储介质
CN114629958B (zh) 资源分配方法、装置、电子设备及存储介质
CN112241293A (zh) 工业互联网云平台的应用管理方法、装置、设备及介质
CN107301089B (zh) 一种app部署及调用方法和终端

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
TR01 Transfer of patent right

Effective date of registration: 20241008

Address after: Room JT12838, Building 2, No. 4268 Zhennan Road, Jiading District, Shanghai, 201800

Patentee after: Shanghai Youplay Network Technology Co.,Ltd.

Country or region after: China

Address before: 11 / F, building B1, phase 4.1, software industry, No.1, Software Park East Road, Wuhan East Lake Development Zone, Wuhan City, Hubei Province, 430070

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

Country or region before: China