CN112749033B - 一种显示设备及系统通知调用方法 - Google Patents
一种显示设备及系统通知调用方法 Download PDFInfo
- Publication number
- CN112749033B CN112749033B CN202110089476.7A CN202110089476A CN112749033B CN 112749033 B CN112749033 B CN 112749033B CN 202110089476 A CN202110089476 A CN 202110089476A CN 112749033 B CN112749033 B CN 112749033B
- Authority
- CN
- China
- Prior art keywords
- notification
- application
- system notification
- data list
- thread
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
Abstract
本申请实施例示出一种显示设备及系统通知调用方法。显示设备包括显示器和控制器,其中,控制器用于调用已安装的应用和3D渲染线程。本实施例示出的技术方案,在3D渲染线程渲染应用场景过程中,可以将系统通知写入数据列表,当3D渲染线程完成应用场景的渲染,应用可以利用JAR包调取在应用场景渲染过程中写入数据列表的系统通知,并以此通知3D渲染线程渲染每个系统通知。采用本申请实施例提供的技术方案可以很好的解决了显示设备中应用启动或跳转过程中遗漏通知的问题,使得用户不会错过任何系统通知,极大提升了用户体验。
Description
技术领域
本申请涉及文件显示技术领域,尤其是涉及一种显示设备及系统通知调用方法。
背景技术
随着社会生产力和科学技术的不断发展,各行各业对VR技术的需求日益旺盛。VR技术也取得了巨大进步,并逐步成为一个新的科学技术领域。VR(Virtual Realit,虚拟现实技术)是指虚拟现实技术,是一种可以创建和体验虚拟世界的计算机仿真系统,它利用计算机生成一种模拟环境,使用户沉浸到该环境中。
我们知道VR界面是由unity等3D(3-dimension,三维)引擎开发,与安卓系统的交互则主要有两种方式:一是unity主动调用JAR(Java ARchive,归档)包中的函数;包括调用JAR包的一些函数执行一系列操作或者是调用JAR包的函数通过返回值来获取数据;二是JAR包主动向unity发送数据,包括监听回调或者是异步的数据返回等。JAR包主动向unity发送数据的方式,主要用到了UnityPlayer中提供的SendeMessage函数,这种方式需要指定3D场景中的物体名字,以及函数名称。因此安卓系统通过JAR包主动向unity场景发送消息就需要场景已经加载完成,场景中的该物体已经正常显示。
但是在VR设备系统开发时,像安卓系统一样会有一些系统通知在任何界面都需要弹出,这些通知包括低电量、插入外设、使用时长提醒、内存不足等等。系统通知是通过SystemUI弹出界面告知用户,通知的弹出肯定是JAR包监听到安卓系统通知然后上报给unity,这也就是只能在unity场景完全加载显示后,unity才会收到通知。当两个APP跳转之间(unity开发的APP由于有3D场景往往启动比较慢,有的加载空隙为几秒),这时如果正好有通知发出,由于旧的场景在销毁,新的APP的场景还未创建完成,并且新的应用的JAR包未启动完成,肯定也无法完成广播的注册。这时系统发出的通知,unity界面收不到,用户也就不到相应的通知,造成通知的遗漏。这是一个功能缺陷,使得用户会遗漏重要通知,极大地影响用户体验,比如如果正好弹出的是内存不足提示用户去清理内存的通知,unity收不到用户也就看不到,导致用户并不知道内存已经不足,但是内存不足后系统会卡顿,用户还不知道原因,将导致用户的使用体验极差,又或者是低电提醒通知,用户看不到提醒,在大多数应用中没有状态栏,那用户不知电量已经低了,继续使用可能很快VR设备就会关机,极大地影响了用户体验。
发明内容
为了解决现有技术存在的技术问题,本申请实施例示出一种显示设备及系统通知调用方法。
本申请实施例第一方面示出一种显示设备,其特征在于,包括:
显示器;
控制器,用于调用已安装的应用和3D渲染线程
所述应用,被配置为:响应于应用的启动,遍历所述数据列表;如果所述数据列表记录有系统通知,利用应用的JAR包调取存储在数据列表内的系统通知;如果所述数据列表未记录有系统通知,利用应用的JAR包监听系统通知;
3D渲染线程,被配置为:利用所述应用输出的系统通知绘制通知界面。
本实施例示出的显示设备,包括显示器和控制器,其中,控制器用于调用已安装的应用和3D渲染线程。应用利用系统独立UI线程中监听系统通知,并将监听到的系统通知添加到数据列表中。在应用启动的过程中,应用通知3D渲染线程渲染该应用的应用场景,当完成应用场景的渲染后,应用利用JAR包读取数据列表中有无系统通知,若有则通知3D渲染线程渲染系统通知;若无则利用JAR包直接监听UI线程广播的系统通知,当监听到系统通知时,通知3D渲染线程渲染系统通知。可见本实施例示出的技术方案,在3D渲染线程渲染应用场景过程中,将系统通知可以被写入数据列表,当3D渲染线程完成应用场景的渲染,应用可以利用JAR调取在3D渲染线程渲染应用场景过程中写入数据列表的系统通知,并以此通知3D渲染线程渲染每个系统通知,采用本申请实施例提供的技术方案可以很好的解决了显示设备中应用启动或跳转过程中遗漏通知的问题,使得用户不会错过任何系统通知,极大提升了用户体验。
本申请实施例第二方面示出一种系统通知调用方法,包括:
响应于应用的启动,遍历所述数据列表;如果所述数据列表记录有系统通知,利用应用的JAR包调取存储在数据列表内的系统通知;如果所述数据列表未记录有系统通知,利用应用的JAR包监听系统通知;
利用所系统通知绘制通知界面。
本实施例示出的系统通知调用方法。所述方法适用于显示设备。显示设备利用安卓系统独立线程UI线程中监听系统通知,并将监听到的系统通知添加到数据列表中。在应用启动的过程中,应用通知3D渲染线程渲染该应用的应用场景,当完成应用场景的渲染后,应用利用JAR包读取数据列表中有无系统通知,若有则通知3D渲染线程渲染系统通知;若无则利用JAR包直接监听UI线程广播的系统通知,当监听到系统通知时,通知3D渲染线程渲染系统通知。可见本实施例示出的技术方案,在3D渲染线程渲染应用场景过程中,系统通知可以被写入数据列表,当3D渲染线程完成应用场景的渲染,应用可以利用JAR调取在3D渲染线程渲染应用场景过程中写入数据列表的系统通知,并以此通知3D渲染线程渲染每个系统通知,采用本申请实施例提供的技术方案可以很好的解决了显示设备中应用启动或跳转过程中遗漏通知的问题,使得用户不会错过任何系统通知,极大提升了用户体验。
附图说明
为了更清楚地说明本申请实施例或相关技术中的实施方式,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1示出了根据一些实施例的显示设备的使用场景;
图2示出了根据一些实施例的控制装置100的硬件配置框图;
图3示出了根据一些实施例的显示设备200的硬件配置框图;
图4示出了根据一些实施例的显示设备200中软件配置图;
图5示出显示设备启动后可以直接进入预置的视频点播程序的界面,视频点播程序的界面;
图6为根据一可行性实施例示出的显示设备的结构框图;
图7为根据一可行性实施例示出的显示器与控制器的交互流程图;
图8为根据一可行性实施例示出的显示器与控制器的交互流程图;
图9为根据一可行性实施例示出的应用的作业流程图。
具体实施方式
为使本申请的目的和实施方式更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
术语“模块”是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
图1为根据实施例中显示设备的使用场景的示意图。如图1所示,显示设备200还与服务器400进行数据通信,用户可通过智能设备300或控制装置100操作显示设备200。
在一些实施例中,控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信或蓝牙协议通信,及其他短距离通信方式中的至少一种,通过无线或有线方式来控制显示设备200。用户可以通过遥控器上按键、语音输入、控制面板输入等至少一种输入用户指令,来控制显示设备200。
在一些实施例中,智能设备300可以包括移动终端、平板电脑、计算机、笔记本电脑,AR/VR设备等中的任意一种。
在一些实施例中,也可以使用智能设备300以控制显示设备200。例如,使用在智能设备上运行的应用控制显示设备200。
在一些实施例中,也可以使用智能设备300和显示设备进行数据的通信。
在一些实施例中,显示设备200还可以采用除了控制装置100和智能设备300之外的方式进行控制,例如,可以通过显示设备200设备内部配置的获取语音指令的模块直接接收用户的语音指令控制,也可以通过显示设备200设备外部设置的语音控制装置来接收用户的语音指令控制。
在一些实施例中,显示设备200还与服务器400进行数据通信。可允许显示设备200通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。
在一些实施例中,一个步骤执行主体执行的软件步骤可以随需求迁移到与之进行数据通信的另一步骤执行主体上进行执行。示例性的,服务器执行的软件步骤可以随需求迁移到与之数据通信的显示设备上执行,反之亦然。
图2示例性示出了根据示例性实施例中控制装置100的配置框图。如图2所示,控制装置100包括控制器110、通信接口130、用户输入/输出接口140、存储器、供电电源。控制装置100可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。
在一些实施例中,通信接口130用于和外部通信,包含WIFI芯片,蓝牙模块,NFC或可替代模块中的至少一种。
在一些实施例中,用户输入/输出接口140包含麦克风,触摸板,传感器,按键或可替代模块中的至少一种。
图3示出了根据示例性实施例中显示设备200的硬件配置框图。
在一些实施例中,显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口中的至少一种。
在一些实施例中控制器包括中央处理器,视频处理器,音频处理器,图形处理器,RAM,ROM,用于输入/输出的第一接口至第n接口。
在一些实施例中,显示器260包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件,用于接收源自控制器输出的图像信号,进行显示视频内容、图像内容以及菜单操控界面的组件以及用户操控UI界面等。
在一些实施例中,显示器260可为液晶显示器、OLED显示器、以及投影显示器中的至少一种,还可以为一种投影装置和投影屏幕。
在一些实施例中,调谐解调器210通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及EPG数据信号。
在一些实施例中,通信器220是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括Wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。显示设备200可以通过通信器220与控制装置100或服务器400建立控制信号和数据信号的发送和接收。
在一些实施例中,检测器230用于采集外部环境或与外部交互的信号。例如,检测器230包括光接收器,用于采集环境光线强度的传感器;或者,检测器230包括图像采集器,如摄像头,可以用于采集外部环境场景、用户的属性或用户交互手势,再或者,检测器230包括声音采集器,如麦克风等,用于接收外部声音。
在一些实施例中,外部装置接口240可以包括但不限于如下:高清多媒体接口接口(HDMI)、模拟或数据高清分量输入接口(分量)、复合视频输入接口(CVBS)、USB输入接口(USB)、RGB端口等任一个或多个接口。也可以是上述多个接口形成的复合性的输入/输出接口。
在一些实施例中,控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。
在一些实施例中,控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器260上显示UI对象的用户命令,控制器250便可以执行与由用户命令选择的对象有关的操作。
在一些实施例中,对象可以是可选对象中的任何一个,例如超链接、图标或其他可操作的控件。与所选择的对象有关操作有:显示连接到超链接页面、文档、图像等操作,或者执行与图标相对应程序的操作。
在一些实施例中控制器包括中央处理器(Central Processing Unit,CPU),视频处理器,音频处理器,图形处理器(Graphics Processing Unit,GPU),RAM Random AccessMemory,RAM),ROM(Read-Only Memory,ROM),用于输入/输出的第一接口至第n接口,通信总线(Bus)等中的至少一种。
CPU处理器。用于执行存储在存储器中操作系统和应用指令,以及根据接收外部输入的各种交互指令,来执行各种应用、数据和内容,以便最终显示和播放各种音视频内容。CPU处理器,可以包括多个处理器。如,包括一个主处理器以及一个或多个子处理器。
在一些实施例中,图形处理器,用于产生各种图形对象,如:图标、操作菜单、以及用户输入指令显示图形等中的至少一种。图形处理器包括运算器,通过接收用户输入各种交互指令进行运算,根据显示属性显示各种对象;还包括渲染器,对基于运算器得到的各种对象,进行渲染,上述渲染后的对象用于显示在显示器上。
在一些实施例中,视频处理器,用于将接收外部视频信号,根据输入信号的标准编解码协议,进行解压缩、解码、缩放、降噪、帧率转换、分辨率转换、图像合成等视频处理中的至少一种,可得到直接可显示设备200上显示或播放的信号。
在一些实施例中,视频处理器,包括解复用模块、视频解码模块、图像合成模块、帧率转换模块、显示格式化模块等中的至少一种。其中,解复用模块,用于对输入音视频数据流进行解复用处理。视频解码模块,用于对解复用后的视频信号进行处理,包括解码和缩放处理等。图像合成模块,如图像合成器,其用于将图形生成器根据用户输入或自身生成的GUI信号,与缩放处理后视频图像进行叠加混合处理,以生成可供显示的图像信号。帧率转换模块,用于对转换输入视频帧率。显示格式化模块,用于将接收帧率转换后视频输出信号,改变信号以符合显示格式的信号,如输出RGB数据信号。
在一些实施例中,音频处理器,用于接收外部的音频信号,根据输入信号的标准编解码协议,进行解压缩和解码,以及降噪、数模转换、和放大处理等处理中的至少一种,得到可以在扬声器中播放的声音信号。
在一些实施例中,用户可在显示器260上显示的图形用户界面(GUI)输入用户命令,则用户输入接口通过图形用户界面(GUI)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。
在一些实施例中,“用户界面”,是应用或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(Graphic User Interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素中的至少一种。
在一些实施例中,用户接口280,为可用于接收控制输入的接口(如:显示设备本体上的实体按键,或其他等)。
在一些实施例中,显示设备的系统可以包括内核(Kernel)、命令解析器(shell)、文件系统和应用。内核、shell和文件系统一起组成了基本的操作系统结构,它们让用户可以管理文件、运行程序并使用系统。上电后,内核启动,激活内核空间,抽象硬件、初始化硬件参数等,运行并维护虚拟内存、调度器、信号及线程间通信(IPC)。内核启动后,再加载Shell和用户应用。应用在启动后被编译成机器码,形成一个线程。
参见图4,在一些实施例中,将系统分为四层,从上至下分别为应用(APPlications)层(简称“应用层”),应用框架(APPlication Framework)层(简称“框架层”),安卓运行时(Android runtime)和系统库层(简称“系统运行库层”),以及内核层。
在一些实施例中,应用层中运行有至少一个应用,这些应用可以是操作系统自带的窗口(Window)程序、系统设置程序或时钟程序等;也可以是第三方开发者所开发的应用。在具体实施时,应用层中的应用包不限于以上举例。
框架层为应用层的应用提供应用编程接口(APPlication programminginterface,API)和编程框架。应用框架层包括一些预先定义的函数。应用框架层相当于一个处理中心,这个中心决定让应用层中的应用做出动作。应用通过API接口,可在执行中访问系统中的资源和取得系统的服务。
如图4所示,本申请实施例中应用框架层包括管理器(Managers),内容提供者(Content Provider)等,其中管理器包括以下模块中的至少一个:活动管理器(ActivityManager)用与和系统中正在运行的所有活动进行交互;位置管理器(Location Manager)用于给系统服务或应用提供了系统位置服务的访问;文件包管理器(Package Manager)用于检索当前安装在设备上的应用包相关的各种信息;通知管理器(Notification Manager)用于控制通知消息的显示和清除;窗口管理器(Window Manager)用于管理用户界面上的括图标、窗口、工具栏、壁纸和桌面部件。
在一些实施例中,活动管理器用于管理各个应用的生命周期以及通常的导航回退功能,比如控制应用的退出、打开、后退等。窗口管理器用于管理所有的窗口程序,比如获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕,控制显示窗口变化(例如将显示窗口缩小显示、抖动显示、扭曲变形显示等)等。
在一些实施例中,系统运行库层为上层即框架层提供支撑,当框架层被使用时,安卓操作系统会运行系统运行库层中包含的C/C++库以实现框架层要实现的功能。
在一些实施例中,内核层是硬件和软件之间的层。如图4所示,内核层至少包含以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、WIFI驱动、USB驱动、HDMI驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。
在一些实施例中,显示设备启动后可以直接进入预置的视频点播程序的界面,视频点播程序的界面可以如图5中所示,至少包括导航栏510和位于导航栏510下方的内容显示区,内容显示区中显示的内容会随导航栏中被选中控件的变化而变化。应用层中的程序可以被集成在视频点播程序中通过导航栏的一个控件进行展示,也可以在导航栏中的应用控件被选中后进行进一步显示。
在一些实施例中,显示设备启动后可以直接进入上次选择的信号源的显示界面,或者信号源选择界面,其中信号源可以是预置的视频点播程序,还可以是HDMI接口,直播电视接口等中的至少一种,用户选择不同的信号源后,显示器可以显示从不同信号源获得的内容。中的应用可以。
但是在VR设备系统开发时,像安卓系统一样会有一些系统通知在任何界面都需要弹出,这些通知包括低电量、插入外设、使用时长提醒、内存不足等等。系统通知是通过SystemUI弹出界面告知用户,通知的弹出肯定是JAR包监听到安卓系统通知然后上报给unity(在本实施例中也可称之为3D渲染线程),这也就是只能在unity场景完全加载显示后,unity才会收到通知。当两个APP跳转之间(unity开发的APP由于有3D场景往往启动比较慢,有的加载空隙为几秒),这时如果正好有通知发出,由于旧的场景在销毁,新的APP的场景还未创建完成,并且新的应用的JAR包未启动完成,肯定也无法完成广播的注册。这时系统发出的通知,unity界面收不到,用户也就不到相应的通知,造成通知的遗漏。这是一个功能缺陷,使得用户会遗漏重要通知,极大地影响用户体验,比如如果正好弹出的是内存不足提示用户去清理内存的通知,unity收不到用户也就看不到,导致用户并不知道内存已经不足,但是内存不足后系统会卡顿,用户还不知道原因,将导致用户的使用体验极差,又或者是低电提醒通知,用户看不到提醒,在大多数应用中没有状态栏,那用户不知电量已经低了,继续使用可能很快VR设备就会关机,极大地影响了用户体验。
为了解决现有技术存在的问题,本申请实施例示出的一种显示设备,具体的可以参阅图6,图6为根据一可行性实施例示出的显示设备的结构框图,其中,显示设备至少包括显示器2和控制器1,其中,控制器内设置有存储器11和处理器12,存储器11用于存储显示设备下载的文件。处理器,用于执行存储在存储器中的操作系统和应用指令或线程。以及根据接收的用户输入指令,来执行各种应用、数据和内容的处理。具体应用到本实施例示出的方案中,处理器可以调用应用121和3D渲染线程122。显示器与控制器的交互流程图可以参阅图7。
所述应用被配置为执行步骤S101响应于应用的启动,调用JAR包遍历所述数据列表;
本申请中应用(APPlication),指的是安装在显示设备上的第三方应用,可以为用户的生活提供便利。例如在一些可行性实施例中,应用可以是视频播放应用,用户可以利用视频播放应用观看视频;在一些可行性实施例中,应用可以是聊天应用,用户可以利用聊天应用与亲友们进行聊天。值得注意的是,本实施例仅是示例性的介绍几种应用,在实际应用的过程中,所述应用可以是但不限于上述几种应用。
用户需要使用应用时,需要启动相应的应用,本实施例并不对应用的启动方式作以限定,例如在一些可行性实施例中,通过触控显示器开启相应的应用,再例如在一些可行性实施例中,通过触控遥控器的按键开启相应的应用。
本实施例示出的技术方案中数据列表用于记录系统通知,其中系统通知这些通知可以包括低电量、插入外设(TF卡、sdcard等)、使用时长提醒、内存不足等等。
本实施例中,JAR(Java ARchive,Java归档)是一种与平台无关的文件格式,JAR包可将多个文件合成一个文件。用户可将多个Java APPlet及其所需组件(.class文件、图像和声音)绑定到JAR包中。JAR包可以实现以下的功能。(1)用于发布和使用数据;(2)作为应用和扩展的构建单元;(3)作为组件、APPlet或者插件程序的部署单位;(4)用于打包与组件相关联的辅助资源。具体应用到本实施例的方案中,JAR包可以调用数据列表内的系统通知。
为了保证数据列表可以记录在显示器设备处于开机状态下的全部系统通知,避免系统通知遗漏的问题出现,本申请实施例示出的技术方案采用UI线程123将监听到的系统通知写入数据列表,具体的实现过程可以参阅图8;图8为根据一可行性实施例示出的显示器与控制器的交互流程图。
所述UI线程被配置为执行步骤S11启动时,注册系统的广播,以使得所述系统UI接收所述系统发送的系统通知;
本申请实施例示出方案中UI线程,为系统启动时,创建一个主线程(mainthread)。这个主线程负责向UI组件分发事件(包括绘制事件),也是在这个主线程里,应用和Android的UI组件发生交互。所以main thread也叫UI thread也即UI线程。
系统启动时(也可称之为显示设备启动时)创建UI线程,当UI线程完成创建时,UI线程注册系统的广播。本实施例并不对UI线程注册系统的广播的实现方式作以限定,例如,在一可行性实施例中,UI线程可以采用自定义动态注册广播的方式注册系统的广播;再例如,在一可行性实施例中,UI线程可以采用静态注册广播的方式注册系统的广播。
每次接收到所述系统通知执行步骤S12将接收到的系统通知写入所述数据列表内。
UI线程完成系统广播的注册,UI线程便可以监听系统通知,并实时的将监听到的系统通知写入数据列表内。
表1为根据一可行性实施例示出的数据列表。
表1
序号 | 系统通知 | 备注 |
1 | 电量 | - |
2 | 插入外设TF卡 | - |
3 | 内存不足 | - |
…… | - | - |
在一些可行性实施例中系统通知的序号的排列顺序可以是UI线程监听到系统通知的时间顺序。
如果所述数据列表记录系统通知,所述应用被配置为执行步骤S1021利用应用的JAR包调取存储在数据列表内的系统通知;
如果所述数据列表记录系统通知,应用利用JAR包调取存储在数据列表内的系统通知;其中,JAR包调取存储在数据列表内的系统通知的实现方式可以采用本领域惯用的数据调用方式,在此申请人不做过多的限定。
在一可行性实施例中,JAR包可以按照数据列表内系统通知对应序号的排列顺序依次调取相应的系统通知,以表1示出的数据为例,对系统通知的调取顺序作以说明。在一可行性实施例中,响应于应用的启动,应用的3D渲染线程开始配置该应用的3D应用场景,当完成3D应用场景的配置,应用调用JAR包遍历数据列表,本申请中,数据列表记录的数据可以参阅表1,JAR包首先调用序号1对应的电量系统通知,而后调用序号1对应的插入外设TF卡系统通知,最后调用内存不足系统通知。
如果所述数据列表未记录有系统通知,所述应用被配置为执行步骤S1022利用应用的JAR包监听系统通知;
本申请实施例示出的方案中,响应于所述应用的启动,应用被配置为调用JAR包注册UI线程广播,以使得所述JAR包接收UI线程广播的系统通知。本实施例并不对JAR包注册UI线程广播的实现方式作以限定,例如,在一可行性实施例中,JAR包可以采用自定义动态注册广播的方式注册UI线程的广播;再例如,在一可行性实施例中,JAR包可以采用静态注册广播的方式注册UI线程的广播。
在一可行性实施例中,当APP的JAR包收到UI线程发过来的系统通知后,会通过调用UnityPlayer中SendeMessage函数将系统通知内容发送给Unity(在本实施中也可称之为3D渲染线程)。
所述应用被配置为执行步骤S103输出所述系统通知;
本实施例在中,系统通知的传输方式可以采用本领域惯用的通知传输方式,在此申请人不做过多的限定。
3D渲染线程被配置为执行步骤S104利用所述应用输出的系统通知绘制通知界面;
本实施例中,3D渲染线程可以称之为Unity。3D渲染线程是实时3D互动内容创作和运营平台。Unity可以将应用的场景渲染成3D效果。
3D渲染线程被配置为执行步骤S105输出通知界面至显示器,以使得所述显示器对所述通知界面进行展示。
本实施例示出的技术方案利用安卓系统UI线程中监听系统通知,并将监听到的系统通知添加到数据列表中保存在数据库中。在应用启动的过程中,应用通知3D渲染线程渲染该应用的应用场景,当完成应用场景的渲染后,应用利用JAR包读取数据列表中有无系统通知,若有则通知3D渲染线程渲染系统通知;若无则利用JAR包直接监听UI线程广播的系统通知,当监听到系统通知时,通知3D渲染线程渲染系统通知。可见本实施例示出的技术方案,在3D渲染线程渲染应用场景过程中,UI线程可以将系统通知写入数据列表,当3D渲染线程完成应用场景的渲染,应用可以利用JAR调取在3D渲染线程渲染应用场景过程中写入数据列表的系统通知,并以此通知3D渲染线程渲染每个系统通知,采用本申请实施例提供的技术方案可以很好的解决了显示设备中应用启动或跳转过程中遗漏通知的问题,使得用户不会错过任何系统通知,极大提升了用户体验。
为了对本实施例示出的方案做进一步的说明,下面结合具体的实例对本实施例示出的技术方案做进一步的说明:
实施例1:
在一可行性实施例中,显示设备安装有应用A和应用B。其中,应用A处于开启的状态,显示设备的显示器展示应用A的应用场景,应用A调用JAR包监听UI线程广播的系统通知,当应用A监听到系统通知时,应用A通知3D渲染线程渲染系统通知。在某一时刻,用户启动应用B,响应于应用B的启动,3D渲染线程开始构建应用B的应用场景,在3D渲染线程渲染应用B的应用场景过程中,UI线程可以将系统通知写入数据列表。当3D渲染线程完成应用B应用场景的渲染,应用B可以利用JAR调取在3D渲染线程渲染应用场景过程中写入数据列表的系统通知,并通知3D渲染线程渲染每个系统通知。应用B完成对所述数据列表内全部系统通知的读取,应用B终止遍历所述数据列表,利用JAR包监听系统通知。
实施例2:
在一可行性实施例中,显示设备安装有应用A。用户启动应用A。响应于应用A的启动,3D渲染线程开始构建应用A的应用场景,在3D渲染线程渲染应用A的应用场景过程中,UI线程可以将系统通知写入数据列表。本实施例,在3D渲染线程渲染应用A的应用场景过程中,并无任何系统通知写入数据列表内。当3D渲染线程完成应用A应用场景的渲染,应用A遍历数据列表,本实施例中数据列表中无任何系统通知的记录,应用A终止遍历所述数据列表,利用JAR包监听系统通知。
在一些可行性实时中,为了防止系统通知重复出现的问题本实施例示出的方案中,所述UI线程被进一步配置为:将监听到的系统通知重新封装,以使得每个所述系统通知配置一个通知ID;将重新封装的所述系统通知写入所述数据列表内。
重新封装的系统通知包含的内容可以参考表2;
表2
具体的在一可行性实施例中,每个所述系统通知配置一个通知ID,每个系统通知配置唯一一个通知ID,所述通知ID起到唯一识别的作用。
图9为根据一可行性实施例示出的应用的作业流程图,本实施例中所述应用被进一步配置为:
S21读取所述系统通知的通知ID;
举例说明:表3为根据一可行性实施例示出的数据列表;
表3
序号 | 系统通知 | 通知ID | 备注 |
1 | 电量 | 通知ID-1 | - |
2 | 插入外设TF卡 | 通知ID-2 | - |
3 | 内存不足 | 通知ID-3 | - |
…… | …… | …… | …… |
当JAR包调取序号1对应的系统通知时,JAR包直接读取序号1对应的通知ID为通知ID-1;当JAR包调取序号2对应的系统通知时,JAR包直接读取序号2对应的通知ID为通知ID-2……
S22响应于所述3D渲染线程完成所述系统通知对应通知界面的渲染,在所述数据列表内删除所述通知ID对应的系统通知;
本实施例示出的技术方案为了避免通知消息的重复展示,在一可行性实施例中,响应于所述3D渲染线程完成所述系统通知对应通知界面的渲染,JAR包基于之前读取到的通知ID删除通知ID对应的系统通知,以此来避免系统通知被重复调用问题的出现。
举例说明,在一可行性实施例中当JAR包调取序号1对应的系统通知时,JAR包直接读取序号1对应的通知ID为通知ID-1;响应于所述3D渲染线程完成电量系统通知对应通知界面的渲染,JAR包删除通知ID-1对应的系统通知。
S23响应于完成一个系统通知的删除,利用应用的JAR包调取下一个系统通知。
本实施例示出的技术方案利用UI线程中监听系统通知,并将通知添加到数据列表中保存在数据库中,该数据列表中保存有通知标题、通知内容、每个通知的唯一通知id等消息。在应用启动的过程中,应用通知3D渲染线程渲染该应用的应用场景,当完成应用场景的渲染后,应用利用JAR包读取数据列表中有无系统通知,若有则通知3D渲染线程渲染系统通知,当完成系统通知时,将该系统通知从数据列表中删除;若无则利用JAR包直接监听UI线程广播的系统通知,当监听到系统通知时,通知3D渲染线程渲染系统通知。本申请实施例示出的显示设备可以保证每个系统通知只会展示一次,避免系统通知重复展示问题的出现。
在一可行性实施例中,所述应用还被配置为:响应于完成所述数据列表内全部系统通知的读取,终止遍历所述数据列表,利用应用的JAR包监听系统通知。
本实施例示出的技术方案中,响应于完成所述数据列表内全部系统通知的读取,终止遍历所述数据列表,可以降低应用的数据处理量。应用可以利用JAR包包监听UI线程广播的系统通知。
请继续参阅表2,在一可行性实施例中,每个重新封装后的所述系统通知包括类型标识,所述类型标识包括第一类型标识和第二类型标识;所述应用还被配置为:读取所述系统通知的类型标识;如果所述类型标识为第一类型标识,不通知所述3D渲染线程绘制所述通知的跳转控件;如果所述类型标识为第二类型标识,通知所述3D渲染线程绘制所述通知的跳转控件。
本实施例示出的技术方案中UI线程在重新封装系统通知时将非存储类消息配置第一类型标识,将存储类消息配置第二类型标识。本实施例中非存储类消息为不需要用户参与的系统通知,例如电量系统通知,对于电量通知界面,因为不涉及到用户的操作,因此,无需配置跳转控件。本实施例中存储类消息为需要用户参与的系统通知,例如插入U盘系统通知,对于插入U盘通知界面,因为需要用户选择是否对U盘进行识别,因此,3D渲染线程在绘制通知界面的时候需要绘制跳转控件。
本申请实施例第二方面示出一种系统通知调用方法,包括:
响应于应用的启动,遍历所述数据列表;如果所述数据列表记录有系统通知,利用应用的JAR包调取存储在数据列表内的系统通知;如果所述数据列表未记录有系统通知,利用应用的JAR包监听系统通知;
利用所系统通知绘制通知界面。
本实施例示出的系统通知调用方法。所述方法适用于显示设备。显示设备利用安卓系统独立线程UI线程中监听系统通知,并将监听到的系统通知添加到数据列表中。在应用启动的过程中,应用通知3D渲染线程渲染该应用的应用场景,当完成应用场景的渲染后,应用利用JAR包读取数据列表中有无系统通知,若有则通知3D渲染线程渲染系统通知;若无则利用JAR包直接监听UI线程广播的系统通知,当监听到系统通知时,通知3D渲染线程渲染系统通知。可见本实施例示出的技术方案,在3D渲染线程渲染应用场景过程中,UI线程可以将系统通知写入数据列表,当3D渲染线程完成应用场景的渲染,应用可以利用JAR调取在3D渲染线程渲染应用场景过程中写入数据列表的系统通知,并以此通知3D渲染线程渲染每个系统通知,采用本申请实施例提供的技术方案可以很好的解决了显示设备中应用启动或跳转过程中遗漏通知的问题,使得用户不会错过任何系统通知,极大提升了用户体验。
具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的控制按键的自定义方法和启动方法的各实施例中的部分或全部步骤。的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用实施方式以及适于具体使用考虑的各种不同的变形的实施方式。
Claims (5)
1.一种显示设备,其特征在于,包括:
显示器;
控制器,用于调用已安装的应用和3D渲染线程以及调用UI线程,所述UI线程在所述显示设备开机时启动;
所述UI线程被配置为:
所述显示设备启动时,注册系统的广播,以使得所述系统UI接收所述系统发送的系统通知;将监听到的系统通知重新封装,以使得每个所述系统通知配置一个通知ID;将重新封装的所述系统通知写入数据列表内;
所述应用被配置为:
响应于应用的启动,遍历所述数据列表;如果所述数据列表记录有系统通知,利用应用的JAR包调取存储在数据列表内的系统通知;读取所述系统通知的通知ID,响应于所述3D渲染线程完成所述系统通知对应通知界面的渲染,在所述数据列表内删除所述通知ID对应的系统通知;响应于完成一个系统通知的删除,利用应用的JAR包调取下一个所述系统通知;响应于完成所述数据列表内全部系统通知的读取,终止遍历所述数据列表,利用应用的JAR包监听系统通知;如果所述数据列表未记录有系统通知,利用应用的JAR包监听系统通知;
所述3D渲染线程被配置为:利用所述应用输出的系统通知绘制通知界面。
2.根据权利要求1所述的显示设备,其特征在于,所述UI线程还被配置为:
每次接收到所述系统通知,广播所述系统通知。
3.根据权利要求2所述的显示设备,其特征在于,所述应用还被配置为:
响应于所述应用的启动,调用JAR包注册UI线程广播,以使得所述JAR包接收UI线程广播的系统通知。
4.根据权利要求2所述的显示设备,其特征在于,每个重新封装后的所述系统通知包括类型标识,所述类型标识包括第一类型标识和第二类型标识;
所述应用还被配置为:读取所述系统通知的类型标识;
如果所述类型标识为第一类型标识,不通知所述3D渲染线程绘制所述通知的跳转控件;
如果所述类型标识为第二类型标识,通知所述3D渲染线程绘制所述通知的跳转控件。
5.一种系统通知调用方法,其特征在于,应用于显示设备,所述方法包括:
所述显示设备启动时,注册系统的广播,以使得所述系统UI接收所述系统发送的系统通知;将监听到的系统通知重新封装,以使得每个所述系统通知配置一个通知ID;将重新封装的所述系统通知写入数据列表内;
响应于应用的启动,遍历数据列表;如果所述数据列表记录有系统通知,利用应用的JAR包调取存储在数据列表内的系统通知;读取所述系统通知的通知ID,响应于3D渲染线程完成所述系统通知对应通知界面的渲染,在所述数据列表内删除所述通知ID对应的系统通知;响应于完成一个系统通知的删除,利用应用的JAR包调取下一个所述系统通知;响应于完成所述数据列表内全部系统通知的读取,终止遍历所述数据列表,利用应用的JAR包监听系统通知;如果所述数据列表未记录有系统通知,利用应用的JAR包监听系统通知;利用所系统通知绘制通知界面。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110089476.7A CN112749033B (zh) | 2021-01-22 | 2021-01-22 | 一种显示设备及系统通知调用方法 |
PCT/CN2022/072894 WO2022156729A1 (zh) | 2021-01-22 | 2022-01-20 | 一种显示设备及显示方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110089476.7A CN112749033B (zh) | 2021-01-22 | 2021-01-22 | 一种显示设备及系统通知调用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112749033A CN112749033A (zh) | 2021-05-04 |
CN112749033B true CN112749033B (zh) | 2023-02-17 |
Family
ID=75652887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110089476.7A Active CN112749033B (zh) | 2021-01-22 | 2021-01-22 | 一种显示设备及系统通知调用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112749033B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109725956A (zh) * | 2017-10-26 | 2019-05-07 | 腾讯科技(深圳)有限公司 | 一种场景渲染的方法以及相关装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8117304B2 (en) * | 2007-10-25 | 2012-02-14 | International Business Machines Corporation | Processing event notifications with an event sink |
US9875150B2 (en) * | 2015-06-02 | 2018-01-23 | Apple Inc. | Method and system for processing notifications amongst applications of a data processing system |
US10223135B2 (en) * | 2016-12-30 | 2019-03-05 | Dropbox, Inc. | User interface extender |
CN111402349B (zh) * | 2019-01-03 | 2023-09-08 | 百度在线网络技术(北京)有限公司 | 渲染方法、渲染装置和渲染引擎 |
CN109821236B (zh) * | 2019-01-18 | 2022-02-22 | 恒信东方文化股份有限公司 | 一种实时图像的提取方法 |
-
2021
- 2021-01-22 CN CN202110089476.7A patent/CN112749033B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109725956A (zh) * | 2017-10-26 | 2019-05-07 | 腾讯科技(深圳)有限公司 | 一种场景渲染的方法以及相关装置 |
Non-Patent Citations (1)
Title |
---|
"基于消息中间件的消息系统在云护理平台的应用与实现";邹猛;《中国优秀硕士学位论文全文数据库》;20180315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112749033A (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113038160B (zh) | 一种显示设备及音视频数据的播放方法 | |
CN112667184A (zh) | 一种显示设备 | |
CN112887753A (zh) | 一种显示设备及频道列表展示方法 | |
CN112860331B (zh) | 一种显示设备及语音交互的提示方法 | |
CN112597110B (zh) | 一种显示设备及文件展示方法 | |
CN113111214A (zh) | 一种播放记录的显示方法及显示设备 | |
CN113064645A (zh) | 一种开机界面控制方法及显示设备 | |
CN112601109A (zh) | 音频播放方法及显示设备 | |
CN114077584A (zh) | 一种文件传输方法及显示设备 | |
CN115776585A (zh) | 显示设备和内容展示方法 | |
CN112749033B (zh) | 一种显示设备及系统通知调用方法 | |
CN112584210B (zh) | 显示设备、视频录制方法及录制文件展示方法 | |
CN112911359B (zh) | 一种资源显示方法、显示设备及遥控器 | |
CN114915810B (zh) | 一种媒资推送方法及智能终端 | |
CN112911381A (zh) | 一种显示设备、模式调整方法、设备及介质 | |
CN112887804A (zh) | 一种显示设备及一种频道编码方法 | |
CN113593613B (zh) | 一种录制磁盘自动注册及解注册方法 | |
CN114915818B (zh) | 一种媒资推送方法及智能终端 | |
CN112752152B (zh) | 投送视频播放方法及显示设备 | |
CN112579542B (zh) | 一种显示设备及页面绘制方法 | |
WO2022156729A1 (zh) | 一种显示设备及显示方法 | |
CN113473220B (zh) | 一种音效自动启动方法及显示设备 | |
CN112199612B (zh) | 一种书签添加和合并的方法及显示设备 | |
CN112860215A (zh) | 一种显示设备及闹钟设置系统 | |
CN116456133A (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 |