2018-03-28 利用广播实现强制下线功能

1.创建ActivityCollector类用于管理所有的活动(包含添加活动、移除活动、销毁所有活动)

ActivityCollector.java

2.创建BaseActivity类作为所有活动的父类

    在BaseActivity中动态注册了一个广播接收器

    (为什么在BaseActivity中动态注册呢?

        因为广播接收器里面需要弹出一个对话框来停止用户的正常操作,若使用静态注册广播接收器,是没有办法在onReceive()方法里弹出对话框的,并且我们也不可能在每一个活动中都注册一个动态广播接收器,由于所有的活动我们都让他继承BaseActivity,所以就在BaseActivity中来写。)

    首先我们定义了一个内部类ForceOfflineReceiver继承了BroadcastReceiver,重写了onRecieve()方法,在这个方法中弹出AlertDialog来提示用户已经被强制下线,并且用户点击对话框选项后,调用ActivityCollector中的finishAll()方法销毁所有活动,然后跳转到登陆页面。

   注册ForceOfflineReceiver这个广播接收器,重写了onResume()和onPause()方法,分别在方法里面注册和取消注册了ForceOfflineReceiver(PS:我们在这两个方法中写的目的:需要始终保证只有处于栈顶的活动才能够收到这条广播,非栈顶的活动不需要去接收,当一个活动失去栈顶位置的时候就会自动取消广播接收器中的注册)

1


2

3.触发强制下线(设置一个按钮的监听)

    在点击事件中发送一条广播,广播的值要与动态注册广播时addAction("")中的值相对应

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

相关阅读更多精彩内容

友情链接更多精彩内容