温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android关于悬浮窗锁屏或截图后消失问题的解决方法

发布时间:2021-11-11 16:30:57 来源:亿速云 阅读:819 作者:柒染 栏目:大数据

Android关于悬浮窗锁屏或截图后消失问题的解决方法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

今天我们就说一说在android8.1锁屏的时候遇到的问题。

问题及解决思路

我们的程序在android8.1下悬浮窗正常使用,但是如果我们这时候锁屏了,或是截取屏幕后,我们的悬浮窗就会自己消失了。

我现在试到的就是这两个,不过我觉得应该是有别的东西在上层挡住了后就会出现这个情况。因为在查代码的时候发现我们的windowsmanage里面的view还是存在的,只不过没有显示出来。

为了不影响使用效果并且可以更简单的解决这个问题,我想了一个方法,就是在windowsmanage每次刷新的时候做一个计数的功能,每多少次刷新后我们删除了view再重新创建。

实现效果

上面的视频可以看到,我们做了个截屏操作后,悬浮窗一会自动消失了,不过很快就又自动显示出来了。

核心代码

实现可移动的悬浮窗效果我们可以从《Android实现可移动的悬浮窗》这个文章里看到代码,我们这里只说解决的这块。

我们首先要把MyWindowManage里面的updaetUsedPercent这个函数改造,在参数后面加了一个boolean的值,用于判断是否要重新建View,如果是的话我们就删除原来的view后再重新addview,如果不用的话直接就是原来的代码更新即可。下图中红框中就是我们新增加的判断部分。

Android关于悬浮窗锁屏或截图后消失问题的解决方法

为了防止以前的调用不用更改了,我们建了一个重载方法,这样默认不输入后面的参数时就是不刷新

Android关于悬浮窗锁屏或截图后消失问题的解决方法


然后我们就看看在FloatWindow的这个服务里调用这个更新方法的代码

Android关于悬浮窗锁屏或截图后消失问题的解决方法

首先上面我们加入了一个updatetimes的int类型变量,然后上面绿色框里面是原先的代码,我们这里就是改造了一下,当updatetimes次数大于10了后我们就执行windowmanage里面的View删除后重新创建,然后把updatetimes重置为0,当小于10的时候就按原来的定时刷新View,然后updatetimes加1.

看完上述内容,你们掌握Android关于悬浮窗锁屏或截图后消失问题的解决方法的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI