CN115080889A - 一种显示模式切换方法及装置 - Google Patents

一种显示模式切换方法及装置 Download PDF

Info

Publication number
CN115080889A
CN115080889A CN202210884573.XA CN202210884573A CN115080889A CN 115080889 A CN115080889 A CN 115080889A CN 202210884573 A CN202210884573 A CN 202210884573A CN 115080889 A CN115080889 A CN 115080889A
Authority
CN
China
Prior art keywords
display mode
target
display
mode
activity
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.)
Granted
Application number
CN202210884573.XA
Other languages
English (en)
Other versions
CN115080889B (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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210884573.XA priority Critical patent/CN115080889B/zh
Publication of CN115080889A publication Critical patent/CN115080889A/zh
Application granted granted Critical
Publication of CN115080889B publication Critical patent/CN115080889B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Telephone Function (AREA)

Abstract

本说明书提供了一种显示模式切换方法及装置,包括:在接收到针对显示界面的显示模式的切换指示的情况下,通过单一任务方式重新启动目标活动;通过单一任务方式重新启动的所述目标活动沿用重新启动前所述目标活动的任务栈;所述切换指示用于指示将所述显示界面的显示模式切换为目标显示模式;根据所述目标显示模式,更改重启后的所述目标活动对应的显示界面的页面布局。

Description

一种显示模式切换方法及装置
技术领域
本说明书一个或多个实施例涉及计算机应用技术领域,尤其涉及一种显示模式切换方法及装置。
背景技术
活动(activity)是一种安卓(Android)组件,其代表了一个显示界面,在应用程序可以调用activity,从而可以在终端的屏幕上显示应用程序的相应界面。有些情况下,应用程序会存在切换显示模式的需求,比如在投屏模式下,从全屏模式切换成分屏模式,比如在应用程序运行终端的显示屏幕上,从全屏模式切换成分屏模式。而在切换显示模式前后的显示界面显示内容相同的情况下,由于活动组件的特性的限制,使得相关技术中切换显示模式的过程耗费较多时间,影响用户的使用体验。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种显示模式切换方法及装置。
根据本说明书一个或多个实施例的第一方面,提出了一种显示模式切换方法,应用于应用程序,所述方法包括:
在接收到针对显示界面的显示模式的切换指示的情况下,通过单一任务方式重新启动目标活动;通过单一任务方式重新启动的所述目标活动沿用重新启动前所述目标活动的任务栈;所述切换指示用于指示将所述显示界面的显示模式切换为目标显示模式;
根据所述目标显示模式,更改重启后的所述目标活动对应的显示界面的页面布局。
根据本说明书一个或多个实施例的第二方面,提出了一种显示模式切换装置,所述装置包括:
目标活动启动模块,用于在接收到针对显示界面的显示模式的切换指示的情况下,通过单一任务方式重新启动目标活动;通过单一任务方式重新启动的所述目标活动沿用重新启动前所述目标活动的任务栈;所述切换指示用于指示将所述显示界面的显示模式切换为目标显示模式;
页面布局更改模块,用于根据所述目标显示模式,更改重启后的所述目标活动对应的显示界面的页面布局。
根据本说明书实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现前述显示模式切换方法。
根据本说明书实施例的第四方面,提供一种计算机设备,所述计算机设备包括:
处理器;
用于存储处理器可执行指令的存储器;
所述处理器通过运行所述可执行指令以实现前述显示模式切换方法。
本说明书提供了一种显示模式切换方法及装置,包括:在接收到针对显示界面的显示模式的切换指示的情况下,通过单一任务方式重新启动目标活动;通过单一任务方式重新启动的所述目标活动沿用重新启动前所述目标活动的任务栈;所述切换指示用于指示将所述显示界面的显示模式切换为目标显示模式;根据所述目标显示模式,更改重启后的所述目标活动对应的显示界面的页面布局。
通过单一任务方式重新启动目标活动,使得重新启动的目标活动可以沿用目标活动原有的数据,即通过复用活动的方式,使得初始显示模式(即切换成目标显示模式前的显示模式)和目标显示模式两种显示模式通过同一活动实现。这样,在显示模式切换过程中无需传输数据,且无需重新启动相应功能实例,使得显示模式切换过程更流畅,且显示模式切换后仍能显示在前一显示模式下进行的交互,使得切换后的显示效果更好;且只用运行一个活动,减少了设备资源的消耗,使得移动终端运行更优化。通过上述方式,提高了用户的使用体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一示例性实施例示出的一种显示模式切换方法的流程图。
图2是本说明书根据一示例性实施例示出的一种投屏显示界面页面布局的示意图。
图3是本说明书根据一具体实施例示出的一种显示模式切换方法的流程图。
图4是本说明书根据一示例性实施例示出的一种显示模式切换装置的框图。
图5是本说明书根据一示例性实施例示出的一种显示模式切换装置所在电子设备的一种硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
活动(activity)是一种安卓(Android)组件,其代表了一个显示界面,在显示界面上显示的内容的运算都是在activity内进行的。在应用程序中可以调用activity,从而可以在终端的屏幕上显示应用程序的相应界面。
对于安卓操作系统而言,其一般是推荐不同显示界面通过不同activity承载(安卓操作系统针对这种方式配备有相应的实现机制,所以推荐这样来实现),比如应用程序的设置界面和功能界面是通过不同activity来承载的。针对这种方式,安卓系统也配备有相应的实现机制,通过这种机制来实现可以减少软件开发量。
对于显示内容相同而显示的大小比例不同(后文称之为显示模式不同)的显示界面,安卓操作系统也是推荐通过不同的activity来承载不同大小比例的显示界面。比如移动终端的界面上,以全屏模式显示的应用程序的特定功能界面,和以分屏模式显示的应用程序的特定功能界面,两者是以不同的activity来承载的。
上述通过不同activity来承载不同显示界面的方式在大部分情况下都能带来较优的效果,但是在有些情况下,反而会带来较差的显示效果。
具体而言,在显示模式切换的场景下,如果显示模式切换前后的显示界面需要显示的内容是相同的(比如都需要显示地图导航应用的导航界面),那将会使得切换显示模式的过程较慢。具体来说,在切换显示模式的情况下,为了保证用户的使用体验,由于有些在原有显示模式下已经交互的内容(即显示界面显示所依赖的数据)需要在显示界面中进行显示,那么需要将原有显示模式下的交互内容,从原有显示模式对应的活动传递给新的显示模式对应的活动,如果显示界面的显示所依赖的数据较多,那么这个过程将耗费较长时间,影响用户的使用体验。
以应用程序为地图导航应用,显示界面为导航界面为例,原有的显示模式为全屏模式,新的显示模式为分屏模式。在全屏显示模式下用户已经使用导航走了一段路了,在全屏模式下的显示界面上将会显示用户已经用导航走过的路,那么已用导航走过的路对应的数据将需要从全屏显示模式对应的活动传递给新的显示模式对应的活动,这样在分屏模式下才能显示已用导航走过的路,才能使得用户具有较好的使用体验。
而为了使得两者之间可以传递数据,将需要较高的开发成本,且即使开发出了相应功能,这个功能需要原有显示模式对应的活动先将需要传递的数据备份,再由新的显示模式来恢复备份的数据,这一过程将耗费较长时间,这使得用户切换了显示模式后并不能立刻显示相应的数据,用户等待时间较长,影响用户的使用体验。特别是对于原有的显示模式对应的活动向新的显示模式传递对应的活动传递数据较多,即显示界面的显示依赖的数据较多(大于一定阈值)的情况,上述方式将给用户带来较差的使用体验。
此外,上述通过两个activity来实现不同显示模式的显示界面还会带来以下问题:
首先是,如果在切换了显示模式下,直接将原有的显示模式对应的活动关闭,那么新的显示模式将无法获取到在原有显示模式下交互的全部数据,当用户需要在原有显示模式下交互的一部分数据的情况下,将无法正常获取到,影响用户的使用体验。因此,相关技术中在切换了显示模式的情况下,一般会保留原有显示模式对应的activity。
这种情况下,如果activity中调用了占用较多资源的实例,比如导航(turnbyturn,TBT)实例、地图实例等,那么将会占用系统较多资源,导致移动终端耗电量增加等弊端,因此相关技术中一般会避免占用系统较多资源的情况,导致两个activity来实现两种显示模式的显示界面的方法不可行。
其次,如果activity中调用了一些启动较慢的实例,比如地图实例在启动时需要绘制地图,绘制地图将会耗费较多时间,这种实例也会进一步拉长切换模式所耗费的时间,影响用户的使用体验。
再次,应用程序(application)的DisplayMetrics(是安卓操作系统中描述显示信息的结构的信息,诸如屏幕大小、屏幕密度和字体缩放)参数一般只能依赖于单个activity,而不同显示模式下屏幕大小是不同的,不同显示模式对应的activity的DisplayMetrics也是不同的,那么当显示模式1使用时,如果应用的DisplayMetrics使用了显示模式2对应的活动的DisplayMetrics,那么可能导致显示混乱。
因此如果使用上述方案,还需要将更改应用的DisplayMetrics的调用方式,成本较高。
在存在上述问题的基础上,为了解决上述问题,考虑可以不采用安卓操作系统推荐的方案,而是针对具有相同显示内容的显示界面,用一个activity来实现该显示界面的不同显示模式。
为了在一个activity中实现不同的显示模式,需要修改activity中已有的页面布局。而在activity运行过程中修改页面布局(即显示模式对应的页面表现方式)是不方便的。且如果多个需要该应用的商户对于显示模式要求不一样,比如有的商户只需要全屏模式,有的上述需要多种不同的显示模式,那么在activity运行过程中修改页面布局的方式将不利于开发,换言之,如果在activity运行过中修改页面布局,由于修改页面布局这个动作被集成在了调用activity的代码中,那么将需要针对不同的商户开发不同的应用程序,开发较为麻烦。
因此在上述前提下,考虑到对于activity来说,其有一种启动方式为单一任务(singletask)启动模式,这种启动模式下activity会沿用之前activity的任务栈(taskAffinity,activity中的数据都放在任务栈中),这样便可以通过重启activity的方式,在activity重启过程中更改页面布局,且由于单一任务的启动模式,使得新启动的activity可以沿用之前的数据。相比于相关技术中的方法,本方法不需要在两个activity中传递数据,只需要在重启过程中更改页面布局信息,显示模式切换耗费时间较短。且通过单一任务方式启动的activity可以保留原有数据,使得显示界面的显示可以依赖于原有显示模式下交互的数据,可以达到更好的显示和交互效果。
换言之,本说明书提供了一种显示模式切换方法及装置,包括:在接收到针对显示界面的显示模式的切换指示的情况下,通过单一任务方式重新启动目标活动;通过单一任务方式重新启动的所述目标活动沿用重新启动前所述目标活动的任务栈;所述切换指示用于指示将所述显示界面的显示模式切换为目标显示模式;根据所述目标显示模式,更改重启后的所述目标活动对应的显示界面的页面布局。
通过单一任务方式重新启动目标活动,使得重新启动的目标活动可以沿用目标活动原有的数据,即通过复用活动的方式,使得初始显示模式(即切换成目标显示模式前的显示模式)和目标显示模式两种显示模式通过同一活动实现。这样,在显示模式切换过程中无需传输数据,且无需重新启动相应功能实例,使得显示模式切换过程更流畅,且显示模式切换后仍能显示在前一显示模式下进行的交互,使得切换后的显示效果更好;且只用运行一个活动,减少了设备资源的消耗,使得移动终端运行更优化。通过上述方式,提高了用户的使用体验。
且上述方式无需对两个activity之间的交互进行开发,也无需对应用的DisplayMetrics的调用方式进行改造,开发成本更低。
接下来将对本说明书示出的一种显示模式切换方法进行详细说明。
如图1所示,图1是本说明书根据一示例性实施例示出的一种显示模式切换方法的流程图,包括:
步骤101,在接收到针对显示界面的显示模式的切换指示的情况下,通过单一任务方式重新启动目标活动(activity)。
其中,通过单一任务方式重新启动的所述目标活动沿用重新启动前所述目标活动的任务栈;所述切换指示用于指示将所述显示界面的显示模式切换为目标显示模式。
具体而言,在需要切换显示模式的情况下,可以通过单一任务的方式重新启动目标活动,由于单一任务方式启动的活动可以沿用之前所使用的任务栈(其他模式重新启动的活动并不能沿用之前使用的任务栈),这样便可以在切换显示模式的情况下,复用初始显示模式对应的活动。
其中,该方法应用于应用程序。
在对步骤101整体进行说明后,接下来将对步骤101涉及的各个名词进行说明。
显示模式用于表征显示界面的显示大小,比如显示模式可以是全屏显示模式,也可以是分屏显示模式,还可以是投屏情况下的全屏显示模式,也可以是投屏情况下的分屏显示模式,初始显示模式和目标显示模式是两种不同的显示模式。如上所述,本说明书的方法可以应用于在移动终端的界面上从全屏切换为分屏、从分屏切换为全屏的情况下,本说明书的方法还可以应用于在投屏的情况下,从全屏切换为分屏、从分屏切换为全屏的情况下。那么本说明书中的初始显示模式(即接收到显示模式切换指示前的显示模式)是全屏模式,所述目标显示模式是分屏模式;或者,所述初始显示模式是分屏模式,所述目标显示模式是全屏模式。当然本说明书中的显示模式不限于上述例子,上述举例并不代表对本说明书的限定。
需要说明的是,投屏即将移动终端中的应用程序投射到其他屏幕(比如车机系统的屏幕、电视等)进行显示。投屏情况下的全屏和分屏的显示模式示意图如图2所示。
目标活动即用于承载两种显示模式的显示界面的活动。活动有多种启动方式,其中一种为单一任务(即singletask)方式,这种方式与其他启动方式不同的是,通过该种方式启动的活动可以沿用初始显示模式对应的活动的任务栈,也就是可以继承初始显示模式对应的活动的历史数据。通过继承另一活动的数据的方式,实现了activity的复用。
显示界面的显示模式的切换指令为用户输入的,当应用程序接收到这一指令即表明需要切换显示模式了。该指令可以是用户通过与移动终端的交互触发的,比如说当用户点击移动终端上特定按钮时执行切换显示模式,当然用户触发该切换指令的方式不限于上述。
此外,之所以选择重新启动的方式来实现activity的复用,如前文所述,是因为这样较为方便,且可以将多种显示模式解耦,使得可以商户(比如移动终端的生产厂商)可以单独选择使用全屏能力、分屏能力,或组合使用,这样使得应用程序的兼容性提高。
步骤103,根据所述目标显示模式,更改重启后的所述目标活动对应的显示界面的页面布局。
具体而言,每当活动重启的情况下,活动便会设置为确定目标显示模式,并根据目标显示模式来更改页面布局,使得活动对应的显示界面可以以目标显示模式来显示。
页面布局可以是屏幕大小、字体大小、显示密度、具体的显示位置等等,更改页面布局也就是更改显示界面的显示方式。
接下来首先对更改页面布局的时机进行说明。
由于activity在重新启动的过程中,都会调用重新启动函数(onNewIntent),为了使得活动知道自己什么时候该更改页面布局,可以考虑将重新启动函数作为更改页面布局的契机,换言之,可以在确定调用重新启动函数的情况下,通过重新启动函数确定目标显示模式,并在调用重新启动函数后根据确定的目标显示模式更新的布局信息。
换言之,步骤103具体包括:针对重新启动的所述目标活动,在目标活动中调用重新启动函数,通过所述重新启动函数确定目标显示模式并更改页面布局信息;所述重新启动函数在所述目标活动非首次启动时被调用。
此外,由于有些情况下用户通过切换指令输入的目标显示模式并不是目标活动获取到的,而是其他活动获取到的,那么为了使得应用程序可以确定目标显示模式,进而更改目标活动的页面布局,可以通过在多个活动间通信的组件来给应用程序传递目标显示模式。
换言之,步骤103包括:通过用于在多个活动之间通信的通信组件,确定目标显示模式;所述目标显示模式为通过交互活动获取用户输入的目标显示模式;根据确定的目标显示模式更新重启后的所述目标活动对应的显示界面的页面布局。
需要说明的是,在调用重新启动函数的时候,可以方便的获取到通信组件(intent)传递的信息,因此目标活动确定目标显示模式可以在调用重新启动函数时进行。
当然,步骤103的执行时机,以及确定目标显示模式的方法不限于上述举例,还可以是其他方法,上述举例不代表对本说明书实施例的限定。
在对步骤103进行说明后,接下来还将对应用程序会做的其他事情进行说明。
首先,如前文所述,应用程序的DisplayMetrics只能依附于单个activity,在activity的DisplayMetrics变化时,也会同步更新应用程序的DisplayMetrics,因此本说明书的方法可以通过单个activity实现应用程序和activity的DisplayMetrics保持一致。
但是有些老旧的安卓系统中,activity的DisplayMetrics更新后不一定会更新应用程序的DisplayMetrics,因此为了确保应用程序的DisplayMetrics随着activity更新而更新,避免界面显示紊乱,可以在活动重启的过程中,应用程序获取目标活动的DisplayMetrics,进而更新自身的DisplayMetrics,保证目标活动和应用程序的DisplayMetrics一致性。
换言之,所述方法还包括:根据目标显示模式,确定所述目标活动的页面布局信息(DisplayMetrics);将应用程序的页面布局信息更新为确定的所述目标活动的页面布局信息。
接下来将通过两个例子来说明本说明书中方法的应用场景。首先,如上所述本说明书中的方法可以引用于投屏的场景中,在投屏的情况下,由于活动是在移动终端运行的,因此在移动终端确定活动输出后,需要将输出的相应视频传输给投屏的终端,以实现投屏的完成。还需要说明的是,由于投屏的内容需要由屏幕来加载,而如果将投屏的内容直接在移动终端的屏幕上来显示,将会影响用户的使用体验(无法正常使用),因此需要在终端中创建虚拟屏来承载投屏内容的输入。还需要说明的是,不同的显示模式由于屏幕大小不同,其虚拟屏也可以是不同的。在不同显示模式对应的虚拟屏不同的情况下,重新启动的过程,实际上是将虚拟屏A中承载的目标活动重新在虚拟屏B中进行重新启动。
以投屏的终端为车机系统为例,所述目标活动对应的显示界面在所述应用程序所属终端创建的虚拟屏中显示,本说明书在步骤103后,还包括:在所述虚拟屏上显示所述显示界面;将所述显示界面的内容,通过移动终端与车机系统之间的连接发送至车机系统,以在所述车机系统的显示屏幕上显示所述显示界面。
此外还需要说明的是,在存在投屏的情况下手机上的地图导航功能界面和投屏下的地图导航功能界面(不论全屏显示模式还是分屏显示模式)都可以通过同一activity来承载。当然为了区分不同的功能,保证不同功能之间的相互隔离,也可以将投屏情况下的显示界面通过一个activity来承载,将在移动终端上显示的相同功能的显示界面通过另一个activity来承载,两者之间通过备份和恢复数据的方式完成数据的传递。
如上所述,本说明书的方法是针对特定的场景提出的(显示所依赖的数据较多,或启动活动中的实例耗费时间较多,或活动中的实例占用资源较多),接下来将说明一种复合上述场景要求的场景。
具体而言,应用程序可以是地图导航应用,目标活动对应的显示界面的显示内容包括地图上的导航路线。这种情况下,目标活动中运行有地图实例和导航实例,地图实例启动较慢且占用较多资源,导航需要显示已走过的路程,需要依赖过去的已行驶路线等。
在上述情况下,为了达到更好的显示效果,在更改显示界面的页面布局后,还应该在更新页面布局的显示界面上显示目标活动未重启前,已走过的路线。
换言之,所述更改重启后的所述目标活动对应的显示界面的页面布局之后,所述方法还包括:在所述地图上显示所述导航路线,所述导航路线包括:重新启动所述目标活动之前的已行驶路线。
最后,还将对目标活动首次启动时的具体方法进行说明。
在确定要打开某一功能的显示界面的情况下,启动目标活动。在目标活动启动过程中会调用首次启动函数(onCreat),同重新启动函数相似,可以将首次启动函数作为确定目标显示模式以及生成目标显示模式的契机。也即在启动过程中调用首次启动函数后,通过通信组件确定目标显示模式,并根据目标显示模式生成相应的页面布局。此外,在调用首次启动函数之前,为了避免界面显示紊乱,还应该根据目标显示模式更新应用的DisplayMetrics。
接下来将通过一具体实施例来对本说明书示出的一种显示模式切换方法进行说明。
用户的手机上安装有地图导航应用程序,用户在开车需要使用地图导航应用程序进行导航时,为了更好的显示效果,可能会想要将手机上的导航路线投屏到车辆的车机系统的显示屏幕上,这种情况下,车机系统、手机操作系统以及地图导航应用程序之间的交互如图3所示。
步骤301,手机操作系统建立与车机系统的连接。
两者建立连接的方式可以是通过WIFI的方式,比如车机连接手机的热点。也可以通过有线的方式连接手机和车机,比如通过USB连接线连接。
步骤302,手机操作系统创建虚拟屏。
如上所述,由于投屏的活动的显示界面需要由屏幕来承载,而对于手机而言,虽然连接了车机系统,但是并不能直接使用车机系统的屏幕,也不能使用手机本身的屏幕来承载投屏的内容,因此需要创建虚拟屏来承载显示界面。
具体建立什么样的虚拟屏,可以根据用户的投屏指令来确定,比如用户指示按照全屏显示模式来投屏,那么根据全屏显示模式显示界面的大小,创建相同大小的全屏虚拟屏,如果用户指示按照分屏显示模式来投屏,那么根据分屏显示模式显示界面的大小,创建相同大小的分屏虚拟屏。
步骤313,车机系统响应连接成功,将地图导航应用程序切换到车机系统显示。
步骤304,手机操作系统根据地图导航应用的调用,在创建的虚拟屏中以singletask方式加载目标activity,并在intent中携带目标显示模式。
其中,activity是安卓操作系统的组件,其并不属于地图导航应用,但是地图导航应用可以通过调用安卓系统的activity来实现其目标。该步骤中手机系统响应于地图导航应用的调用,在相应的虚拟屏(操作系统根据用户输入的指令来确定)中加载activity,并将通过intent向地图导航应用传递目标显示模式。
此外,以singletask方式加载目标activity,使得目标activity可以继承重启前的任务栈,从而实现了目标activity的复用。
步骤325,地图导航应用更新应用的DisplayMetrics。
将Application的DisplayMetrics及时更新为当前虚拟屏幕参数,保持Application、Activity里的DisplayMetrics一致性,避免界面显示紊乱。
步骤326,地图导航应用通过onNewIntent/onCreat来获取intent中的目标显示模式。
步骤327,地图导航应用根据目标显示模式更新页面布局。
步骤308,手机操作系统根据显示界面实时编码,生成H264视频流。
H264是一种视频发送标准,通过该标准可以方便的向车机发送相应的视频流。
步骤309,手机操作系统向车机系统实时发送流媒体。
步骤310,车机系统实时解码H264视频流,并实时显示视频帧。
通过上述方法,地图导航应用通过singletask启动模式,切换过程中复用了已存在的activity实例,实现了无痕接续。
与前述方法的实施例相对应,本说明书还提供了显示模式切换装置及其所应用的终端的实施例。
如图4所示,图4是本说明书根据一示例性实施例示出的一种显示模式切换装置的框图,所述装置包括:
目标活动启动模块410,用于在接收到针对显示界面的显示模式的切换指示的情况下,通过单一任务方式重新启动目标活动;通过单一任务方式重新启动的所述目标活动沿用重新启动前所述目标活动的任务栈;所述切换指示用于指示将所述显示界面的显示模式切换为目标显示模式。
页面布局更改模块420,用于根据所述目标显示模式,更改重启后的所述目标活动对应的显示界面的页面布局。
在一可选实施例中,页面布局更改模块420,用于通过用于在多个活动之间通信的通信组件,确定目标显示模式;所述目标显示模式为通过交互活动获取用户输入的目标显示模式;根据确定的目标显示模式更新重启后的所述目标活动对应的显示界面的页面布局。
在一可选实施例中,页面布局更改模块420,用于针对重新启动的所述目标活动,调用重新启动函数,通过所述重新启动函数确定目标显示模式并更改页面布局信息;所述重新启动函数在所述目标活动非首次启动时被调用。
在一可选实施例中,所述目标活动对应的显示界面在应用程序所属终端创建的虚拟屏中显示;所述装置在页面布局更改模块420后,还包括内容发送模块430(图中未示出),用于在所述虚拟屏上显示所述显示界面;将所述显示界面的内容,通过移动终端与车机系统之间的连接发送至车机系统,以在所述车机系统的显示屏幕上显示所述显示界面。
在一可选实施例中,该装置还包括:页面布局信息更新模块440(图中未示出),用于根据目标显示模式,确定所述目标活动的页面布局信息;将应用程序的页面布局信息更新为确定的所述目标活动的页面布局信息。
在一可选实施例中,所述目标活动对应的显示界面显示的内容包括:地图上的导航路线;
所述装置在页面布局更改模块420后,还包括导航路线显示模块450,用于在所述地图上显示所述导航路线,所述导航路线包括:重新启动所述目标活动之前的已行驶路线。
在一可选实施例中,在接收到显示模式的切换指示之前的显示模式是全屏模式,所述目标显示模式是分屏模式;或者,在接收到显示模式的切换指示之前的显示模式是分屏模式,所述目标显示模式是全屏模式。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
如图5所示,图5示出了实施例显示模式切换装置所在计算机设备的一种硬件结构图,该设备可以包括:处理器1010、用于存储处理器可执行指令的存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,通过运行所述可执行指令以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的显示模式切换方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

Claims (10)

1.一种显示模式切换方法,应用于应用程序,所述方法包括:
在接收到针对显示界面的显示模式的切换指示的情况下,通过单一任务方式重新启动目标活动;通过单一任务方式重新启动的所述目标活动沿用重新启动前所述目标活动的任务栈;所述切换指示用于指示将所述显示界面的显示模式切换为目标显示模式;
根据所述目标显示模式,更改重启后的所述目标活动对应的显示界面的页面布局。
2.根据权利要求1所述的方法,所述根据所述目标显示模式,更改重启后的所述目标活动对应的显示界面的页面布局,包括:
通过用于在多个活动之间通信的通信组件,确定目标显示模式;所述目标显示模式为通过交互活动获取用户输入的目标显示模式;
根据确定的目标显示模式更新重启后的所述目标活动对应的显示界面的页面布局。
3.根据权利要求1所述的方法,所述根据所述目标显示模式,更改重启后的所述目标活动对应的显示界面的页面布局,包括:
针对重新启动的所述目标活动,调用重新启动函数,通过所述重新启动函数确定目标显示模式并更改页面布局信息;所述重新启动函数在所述目标活动非首次启动时被调用。
4.根据权利要求1所述的方法,所述目标活动对应的显示界面在所述应用程序所属终端创建的虚拟屏中显示;
在所述更改重启后的所述目标活动对应的显示界面的页面布局之后,所述方法还包括:
在所述虚拟屏上显示所述显示界面;
将所述显示界面的内容,通过移动终端与车机系统之间的连接发送至车机系统,以在所述车机系统的显示屏幕上显示所述显示界面。
5.根据权利要求1所述的方法,所述方法还包括:
根据目标显示模式,确定所述目标活动的页面布局信息;
将应用程序的页面布局信息更新为确定的所述目标活动的页面布局信息。
6.根据权利要求1所述的方法,所述目标活动对应的显示界面显示的内容包括:地图上的导航路线;
所述更改重启后的所述目标活动对应的显示界面的页面布局之后,所述方法还包括:
在所述地图上显示所述导航路线,所述导航路线包括:重新启动所述目标活动之前的已行驶路线。
7.根据权利要求1所述的方法,
在接收到显示模式的切换指示之前的显示模式是全屏模式,所述目标显示模式是分屏模式;
或者,在接收到显示模式的切换指示之前的显示模式是分屏模式,所述目标显示模式是全屏模式。
8.一种显示模式切换装置,所述装置包括:
目标活动启动模块,用于在接收到针对显示界面的显示模式的切换指示的情况下,通过单一任务方式重新启动目标活动;通过单一任务方式重新启动的所述目标活动沿用重新启动前所述目标活动的任务栈;所述切换指示用于指示将所述显示界面的显示模式切换为目标显示模式;
页面布局更改模块,用于根据所述目标显示模式,更改重启后的所述目标活动对应的显示界面的页面布局。
9.一种计算机设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-7中任一项所述的显示模式切换方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-7中任一项所述的方法。
CN202210884573.XA 2022-07-26 2022-07-26 一种显示模式切换方法及装置 Active CN115080889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210884573.XA CN115080889B (zh) 2022-07-26 2022-07-26 一种显示模式切换方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210884573.XA CN115080889B (zh) 2022-07-26 2022-07-26 一种显示模式切换方法及装置

Publications (2)

Publication Number Publication Date
CN115080889A true CN115080889A (zh) 2022-09-20
CN115080889B CN115080889B (zh) 2023-01-17

Family

ID=83242809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210884573.XA Active CN115080889B (zh) 2022-07-26 2022-07-26 一种显示模式切换方法及装置

Country Status (1)

Country Link
CN (1) CN115080889B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016095728A1 (zh) * 2014-12-16 2016-06-23 阿里巴巴集团控股有限公司 一种多窗口显示方法及装置
CN106778248A (zh) * 2016-12-26 2017-05-31 北京奇虎科技有限公司 应用程序Activity启动的方法和装置
CN107203369A (zh) * 2016-03-16 2017-09-26 阿里巴巴集团控股有限公司 基于Android的弹框提示方法及装置
CN107508961A (zh) * 2017-06-26 2017-12-22 努比亚技术有限公司 一种活动窗口启动方法、终端及计算机可读存储介质
CN107797833A (zh) * 2016-08-29 2018-03-13 北京雪球信息科技有限公司 智能设备上应用程序的界面显示方法
CN109947317A (zh) * 2019-03-11 2019-06-28 北京字节跳动网络技术有限公司 应用程序页面显示方法和装置
CN110716780A (zh) * 2019-09-23 2020-01-21 广州视源电子科技股份有限公司 界面的显示方法和装置
CN111736928A (zh) * 2020-06-22 2020-10-02 Oppo(重庆)智能科技有限公司 一种画中画模式启动方法、装置及计算机可读存储介质
EP3786778A1 (en) * 2019-08-28 2021-03-03 Beijing Xiaomi Mobile Software Co., Ltd. Method and device for screen projection, terminal and storage medium
WO2021037084A1 (zh) * 2019-08-26 2021-03-04 华为技术有限公司 一种分屏显示方法与电子设备
CN114647395A (zh) * 2022-03-28 2022-06-21 北京小米移动软件有限公司 投屏方法、装置、电子设备及存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016095728A1 (zh) * 2014-12-16 2016-06-23 阿里巴巴集团控股有限公司 一种多窗口显示方法及装置
CN107203369A (zh) * 2016-03-16 2017-09-26 阿里巴巴集团控股有限公司 基于Android的弹框提示方法及装置
CN107797833A (zh) * 2016-08-29 2018-03-13 北京雪球信息科技有限公司 智能设备上应用程序的界面显示方法
CN106778248A (zh) * 2016-12-26 2017-05-31 北京奇虎科技有限公司 应用程序Activity启动的方法和装置
CN107508961A (zh) * 2017-06-26 2017-12-22 努比亚技术有限公司 一种活动窗口启动方法、终端及计算机可读存储介质
CN109947317A (zh) * 2019-03-11 2019-06-28 北京字节跳动网络技术有限公司 应用程序页面显示方法和装置
WO2021037084A1 (zh) * 2019-08-26 2021-03-04 华为技术有限公司 一种分屏显示方法与电子设备
EP3786778A1 (en) * 2019-08-28 2021-03-03 Beijing Xiaomi Mobile Software Co., Ltd. Method and device for screen projection, terminal and storage medium
CN110716780A (zh) * 2019-09-23 2020-01-21 广州视源电子科技股份有限公司 界面的显示方法和装置
CN111736928A (zh) * 2020-06-22 2020-10-02 Oppo(重庆)智能科技有限公司 一种画中画模式启动方法、装置及计算机可读存储介质
CN114647395A (zh) * 2022-03-28 2022-06-21 北京小米移动软件有限公司 投屏方法、装置、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
夏德冰等: "Android应用中一种Activity窗口管理系统", 《计算机系统应用》 *
黄钟锐: ""Android系统中启动模式对性能影响"", 《中国新技术新产品》 *

Also Published As

Publication number Publication date
CN115080889B (zh) 2023-01-17

Similar Documents

Publication Publication Date Title
CN107305553B (zh) 一种基于Hybrid App中动态跳转Hybrid页面的方法及系统
CN110737487A (zh) 一种资源的切换控制方法、系统、终端设备和存储介质
US10949226B2 (en) Display method of multi-application based on Android system, and terminal device
EP3680765A1 (en) Navigation bar control method and device
CN112612386B (zh) 移动终端及其应用卡片的显示方法
CN110704059A (zh) 图像处理方法、装置、电子设备及存储介质
KR20160097415A (ko) 안드로이드 플랫폼상에서의 멀티윈도우 구동 어플리케이션 및 이를 구비한 터치 디바이스
CN113342330A (zh) 前端工程生成方法及装置
CN113835928A (zh) 应用的备份和恢复方法、设备、存储介质和程序产品
CN107678737B (zh) 业务处理方法、装置及自助终端设备
CN114115673A (zh) 车载屏幕的控制方法
CN115080889B (zh) 一种显示模式切换方法及装置
CN111381892A (zh) 一种数据处理方法、装置、设备和机器可读介质
CN111221613B (zh) 程序调用方法及装置、存储介质
JP2011070582A (ja) 情報処理方法、情報処理装置及びプログラム
US9690592B2 (en) Display control device, and display control method
CN114077368B (zh) 车载小程序运行方法、装置、计算机设备及存储介质
CN109669715A (zh) 应用程序动态更新方法、设备及存储介质
CN111580873B (zh) 页面更新方法及装置、终端、存储介质
CN113253905B (zh) 基于多指操作的触控方法及智能终端
CN114675786A (zh) 一种大容量存储挂载方法、装置、终端及介质
CN113452776A (zh) PaaS平台服务调度方法、装置及PaaS平台
CN108733444B (zh) 一种页面的刷新方法、装置、存储介质及移动终端
CN112698884A (zh) 程序启动方法、装置、系统、设备及存储介质
CN113254132A (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