Android中不依赖activity的dialog弹窗的实现是个坑!血一样的教训!

一、问题描述:

当我们在Service或者其他一些地方想要弹出一个Dialog或者Window来提示用户时,这时候又恰巧没有很方便activityContext可以提供使用时,在百度上一搜,咦,又解决方案啊!啊哈哈!

二、错误的解决方案

给Window添加一个属性
para.type = WindowManager.LayoutParams.TYPE_TOAST;
给Dialog添加一个类型
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
然后你在手头的测试机上一测,发现可以耶,爽歪歪!

Too young Too Simple!!!

这样做之后可能在大部分的手机上是可行的,但是在一些国产定制化的Android系统上就悲剧了!例如小米、魅族等
在这些手机上,设置这些属性,触发了定制化系统的弹窗安全级别,即用户退出应用后,还能显示弹窗,所以需要用户开启该应用的悬浮窗权限!!!

三、解决方案

还是老老实实的用activityContext!哈哈哈!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容