简介
随着对BroadCast的越来越深入,我们今天要实现一个稍微复杂一点的BroadCast。即我们常用来有时APP打开时如果多个设备同时登录一个帐号,而我们只允许一个设备登录一个帐号时,此时我们的APP会弹一个对话框如:您的账号在别处登录,请重新登陆!。
设计
要制作这样的效果我们依旧是采用BroadCast,而且是一个自定义的Broadcast。此处需要:
- 自定义send一个broadcast;
- 注册一个receiver,使得它监听我们这个自定义的broadcast;
- 在receiver的onReceive事件中,弹出一个“无窗体悬浮alert dialog”;
- 由于Android6及以后的相应权限问题,你还要添加这个无窗体的悬浮alert dialog的权限;
- 又由于我们用的是SDK27及以后版本,因此光添加权限还没有用,还要使用代码唤出android关于这个app的一个“授权”系统窗口,在这个授权窗口内,用户自己点:allow后再进行打开这个app操作,此时这个悬浮alert dialog才能正确被唤起否则当这个alert dialog一旦被唤出你会得到一个permission denied 2038的错误,然后Android App自动退出;
好了,说了这么多我们来看代码