Android关于悬浮窗锁屏或截图后消失问题的解决方法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
舞钢网站建设公司成都创新互联,舞钢网站设计制作,有大型网站制作公司丰富经验。已为舞钢近千家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的舞钢做网站的公司定做!
今天我们就说一说在android8.1锁屏的时候遇到的问题。
问题及解决思路
我们的程序在android8.1下悬浮窗正常使用,但是如果我们这时候锁屏了,或是截取屏幕后,我们的悬浮窗就会自己消失了。
我现在试到的就是这两个,不过我觉得应该是有别的东西在上层挡住了后就会出现这个情况。因为在查代码的时候发现我们的windowsmanage里面的view还是存在的,只不过没有显示出来。
为了不影响使用效果并且可以更简单的解决这个问题,我想了一个方法,就是在windowsmanage每次刷新的时候做一个计数的功能,每多少次刷新后我们删除了view再重新创建。
实现效果
上面的视频可以看到,我们做了个截屏操作后,悬浮窗一会自动消失了,不过很快就又自动显示出来了。
核心代码
实现可移动的悬浮窗效果我们可以从《Android实现可移动的悬浮窗》这个文章里看到代码,我们这里只说解决的这块。
我们首先要把MyWindowManage里面的updaetUsedPercent这个函数改造,在参数后面加了一个boolean的值,用于判断是否要重新建View,如果是的话我们就删除原来的view后再重新addview,如果不用的话直接就是原来的代码更新即可。下图中红框中就是我们新增加的判断部分。
为了防止以前的调用不用更改了,我们建了一个重载方法,这样默认不输入后面的参数时就是不刷新
然后我们就看看在FloatWindow的这个服务里调用这个更新方法的代码
首先上面我们加入了一个updatetimes的int类型变量,然后上面绿色框里面是原先的代码,我们这里就是改造了一下,当updatetimes次数大于10了后我们就执行windowmanage里面的View删除后重新创建,然后把updatetimes重置为0,当小于10的时候就按原来的定时刷新View,然后updatetimes加1.
看完上述内容,你们掌握Android关于悬浮窗锁屏或截图后消失问题的解决方法的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!