一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于应用自管理实现防烧屏的方法与流程

2022-02-24 16:41:08 来源:中国专利 TAG:


1.本发明涉及软件技术领域,具体涉及一种基于应用自管理实现防烧屏的方法。


背景技术:

2.烧屏问题是指屏幕长时间显示一个静态画面,造成的屏幕显示残影。烧屏会影响屏幕的使用寿命,也会影响用户的使用体验。目前业界对于烧屏问题没有办法来根本解决。最常见的解决办法是由系统定时监测屏幕内容变化,且没监测到用户操作的时候,执行预置的防烧屏策略,但是对于即使无操作也长时间在停留在前台播放视频或者音乐的应用,则不会触发防烧屏策略。


技术实现要素:

3.本发明所要解决的技术问题是:提出一种基于应用自管理实现防烧屏的方法,有效解决烧屏问题,提高屏幕的使用寿命,提升用户使用体验。
4.本发明解决上述技术问题采用的技术方案是:
5.一种基于应用自管理实现防烧屏的方法,包括:
6.在应用初始化时,创建一个用于管理全局静态视图的管理者,且将需要管理的视图添加至管理者内,启动计时器记录当前的系统时间戳;使用应用时,通过对记录的系统时间戳和当前时间进行判断,并通过属性动画的方式,将添加进来的视图进行动态显示或者隐藏,从而避免屏幕长时间显示静态画面。
7.作为进一步优化,所述管理者与应用和播放器的生命周期状态关联。
8.作为进一步优化,所述管理者与应用和播放器的生命周期状态关联的实现方式包括:
9.通过暴露属性动画对象的onpause和onresume方法关联播放器和应用的生命周期。
10.作为进一步优化,所述通过属性动画的方式,将添加进来的视图进行动态显示或者隐藏,具体包括:通过对被管理视图进行透明度渐变操作的方式来显示或者隐藏视图。
11.作为进一步优化,所述管理者通过维护一个哈希表来存放添加进来的视图。
12.作为进一步优化,所述通过对记录的系统时间戳和当前时间进行判断,具体包括:
13.在播放器的起播状态里记录当前时间戳,并且与管理者内记录的原始系统时间戳比较,判断是否大于默认时间阈值。
14.作为进一步优化,该方法还包括:对于循环播放视频的应用,所述属性动画的播放时间根据视频时长来动态管控。
15.作为进一步优化,所述根据视频时长动态管控属性动画的播放时间的方法包括:
16.根据视频时长将属性动画均分为若干份,每一份对应一段时长的视频,在每一段时长的视频时间结尾处将视图的透明度设置为0,即隐藏视图;在属性动画结束时,再将视图的透明度设置为1,即显示视图。
17.本发明的有益效果是:
18.该方案实现在应用软件的层面上做到对屏幕的有效防护,被管理视图添加和对时间间隔的判断可以自定义,所执行的动画逻辑和效果也可以根据需求修改。本发明从应用的角度出发,对需要长时间在前台显示且内容相对静态应用进行管理,无需用户手动切换画面来保护屏幕,针对年老或者年幼等对屏幕原理不清楚的用户十分友好,一定程度上可以解决电视应用程序长期、静止显示于屏幕而产生的烧屏现象问题。
附图说明
19.图1为实施例中在应用上实现防烧屏功能的流程图。
具体实施方式
20.本发明旨在提出一种基于应用自管理实现防烧屏的方法,有效解决烧屏问题,提高屏幕的使用寿命,提升用户使用体验。其核心思想是:在应用初始化时创建一个管理全局静态视图的管理者,且将需要管理的视图添加到管理者内,启动计时器记录当前的系统时间戳,使用应用时,通过对记录的时间和当前时间进行判断,最后通过属性动画的方式,将添加进来的视图进行显示或者隐藏,来达到防止屏幕长时间静态显示造成的烧屏问题。该方案在视频播放达到阈值之后,管理者会自动将被管理的视图进行隐藏或者显示的操作,并且根据视频的时长,自动按正比匹配淡入淡出动画的时长,并且在视频起播和结束时,自动对视图状态重置。
21.在具体实现上,为了实现本发明的上述基于应用自管理实现防烧屏的方法,我们需要解决以下问题:
22.(1)对于长时间在前台且界面相对固定的应用,我们希望可以通过自身去管理应用中相对固定的界面,对此需要建立全局唯一的管理者实现全局管理。
23.(2)对于应用本身来说,能动态感知自身被使用的信息,包括使用时间、应用状态(如:是否为前台应用)。
24.(3)对应用里需要自定义管控的视图可以进行动态的添加。
25.(4)针对会重复循环动作并且时机跨度不一的应用(如重复播放时长不同适配),要能够根据连续动作的耗时不同,动态的对需要管理的视图进行耗时不同的状态切换。
26.针对上述问题,本发明提出以下对应解决手段:
27.(1)首先需要创建一个全局作用域的管理者,通过这个管理者对外暴露方法的形式来对整个应用的界面进行管理,我们采取属性动画的方式,通过对被管理视图进行透明度渐变操作的方式,来达到让固定视图显示或者隐藏从而到达防烧屏的目的。
28.(2)在管理者内维护一个时间戳变量,通过对外暴露方法,应用可以记录到自身的使用时间,再通过对使用时间的判断来对管理的视图进行动态移除或者添加,从而达到保护屏幕,防止烧屏的目的,并且在应用的不同生命周期的合理时机上,对管理者里的时间戳进行重置,来达到感知应用使用状态的目的。
29.(3)对于需要动态添加的视图或对象,我们希望在管理者里维护一个哈希表,并且将向该表里添加成员的方法暴露给外界,来实现动态的添加和删除视图,来达到管理的目的。开发者在应用适合的时机再将需要被管理的视图对象添加进管理者即可。
30.(4)对于循环播放视频的应用,在特定情况下会重复播放视频,此操作不会触发屏保程序,在这种情况下,就需要应用自身实现屏保的功能,对于不同时长的视频,如何实现动态控制视图的淡入淡出的时间,为此我们需要先获取此视频的时长,然后以秒为单位将属性动画分成若干份,前两份(即前两秒)透明度不变,第三秒透明度变为0,隐藏视图,最后在视频时长的最后一秒再将视图显示,对于循环播放视频便可以一直重复此过程,来达到防烧屏的目的。
31.实施例:
32.以在应用上实现防烧屏功能为例,从创建管理者,到添加管理的视图,关联生命周期,再到条件执行隐藏或者显示视图的操作流程如图1所示,具体介绍如下:
33.一、首先,创建单例全局管理者,维护一个哈希表存放视图,采用属性动画的设置透明度动画的方式管理视图,记录一个时间戳变量和自定义全局唯一常量用来当做判断是否执行属性动画的条件,暴露设置和得到时间戳的方法,这样管理者便能感知应用当前状态,再暴露属性动画对象的onpause和onresume方法关联播放器和应用的生命周期,最后再暴露出对哈希表中的视图设置透明度和属性动画对象配置的方法即可。
34.二、在应用初始化的时候调用管理者的addview方法,将需要管理的视图添加到管理者的哈希表中,在onresume和按键监听方法中重置时间戳,在播放器的起播状态里记录当前系统的时间戳,并且与管理者内原始时间戳比较,当大于默认时间阈值时,进行界面的透明度变化操作;停播时停止动画。
35.三、要通过对视频时长的判断,实现动态的管控属性动画的播放时间;要实现这个功能,首先属性动画是可以均分为很多份来执行的,我们以秒为单位,最小执行时间定为3秒,在执行透明度动画时依次对哈希表中的视图的透明度进行修改,将视频时长作为参数传入该方法,前两秒透明度都保持为1(可见),第三秒设为0(不可见),当时长大于3秒时,将属性动画分成时长大小的份数执行,最后一秒再将透明度变成1即可,并且设置属性动画的animatorlisteneradapter中的onanimationcancel回调方法,在动画结束时,将所有的视图透明度设为1,这样便实现了在设置播放规定的时间之后,每次播放视频都会对视图进行透明度渐变操作,并且在视频播放结束之后在将透明度还原,如果一直未有用户操作,则一直循环此操作,以此达到保护屏幕的目的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献