Android中不依赖activity的dialog弹窗的实现是
2017-02-20 本文已影响1306人
枫叶丶鑫鑫
一、问题描述:
当我们在Service或者其他一些地方想要弹出一个Dialog或者Window来提示用户时,这时候又恰巧没有很方便activity的Context可以提供使用时,在百度上一搜,咦,又解决方案啊!啊哈哈!
二、错误的解决方案
给Window添加一个属性
para.type = WindowManager.LayoutParams.TYPE_TOAST;
给Dialog添加一个类型
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
然后你在手头的测试机上一测,发现可以耶,爽歪歪!
Too young Too Simple!!!
这样做之后可能在大部分的手机上是可行的,但是在一些国产定制化的Android系统上就悲剧了!例如小米、魅族等
在这些手机上,设置这些属性,触发了定制化系统的弹窗安全级别,即用户退出应用后,还能显示弹窗,所以需要用户开启该应用的悬浮窗权限!!!
三、解决方案
还是老老实实的用activity的Context!哈哈哈!!!