Android初学之十三:广播的实践,实现强制下线功能

实现强制功能下线的思路,只需要在界面上弹出一个对话框,让用户无法进行任何其它操作,必须要点击对话框的确定按钮,然后回到登录界面即可。可就是存在一个问题,当我们被通知强制下线可能正处于任何一个界面,难道需要在每个界面上都编写一个弹出对话框的逻辑?这个时候就需要用到我们上一章学习到的广播知识啦

强制下线功能需要先关闭所有的活动,然后回到登录界面
1、首先编写登录界面布局文件
在这里插入图片描述
2、接着判断获取到的账号和密码
在这里插入图片描述
3、编写TestActivity的活动代码
在这里插入图片描述
4、编写按钮发送一条值为com.example.broadcastbestpractice.FORCE_OFFLINE的广播,接收到这条广播意味着强制下线
在这里插入图片描述
5、最后思考如何在所有的活动界面里弹出一条强制下线的对话框
(1)、先创建一个管理活动控制器的ActivityCollector类,一键关闭所有活动
在这里插入图片描述
(2)、接着新建一个BaseActivity类,让LoginActivity和TestActivity继承它,调用ActivityCollector的addActivity()方法和removeActivity()方法
在这里插入图片描述
(4)、在BaseActivity里动态注册一个广播接收器,就可以解决在每个活动界面上创建一个广播接收器的问题;
在这里插入图片描述
(5)、建好广播接收器后,怎么注册广播呢?因为我们始终需要保证只有处于栈顶的活动才能接收到这条强制下线广播,非栈顶的活动不应该也没有必要去接收这个广播,所以写在onResume()和onPause()方法里很好的解决这个问题,当一个活动失去栈顶位置时就会自动取消广播接收器的注册。
在这里插入图片描述

根据郭霖大神的《第一行代码》学习,敬礼!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值