QQ强制下线的实现,Activity与Broadcast组件的在应用
来源:互联网 发布:端口 英文 编辑:程序博客网 时间:2024/05/22 12:38
今天学习了一个效果,就是QQ强制下线,相信大家在登陆QQ的过程中,当你在其它设备登陆QQ的时候就会被强制下线,不管你此时停留在哪个界面,那这是怎么实现的呢?实现这个功能可以加深我们对广播有个更好的认识。当在QQ其它设备登陆时,当前设备会弹出一个对话框,然后点击后回到登陆界面,那么有两点知识:
1. 我们四大组件之一,Broadcast Receiver广播接收者的知识需要掌握
2. 四大组件之一,Activity的在深入,我们需要关闭所有活动返回登陆界面,所以我们需要关闭所有活动的实现。
先看一下效果图
一. Activitu
关于这个组件的基本知识、它的周期我就不说了。但是有一种情况就是当我们连续打开了三个界面,岂不是要按三次Back键才能返回,如何能随时随地的推出呢。
1.我们新建一个ActivityCollector类作为活动管理器,代码如下:
在活动管理器中,我们通过一个List在暂存活动,然后提供三个方法,作用从方法名就应该能看出。
2.创建BaseActivity作为所有活动的父类,代码如下:
从此不管在什么地方,只需要调用ActivityCollector.finishall()方法就可以了。
3.登陆界面代码不在粘贴了,很简单,两个EditText一个Button,一会看效果图就明白了。 登陆的逻辑实现代码如下:
二. Broadcast Recevier
1. 登陆后进入“主界面”,只有一个button一个TextView。但是我们要在button的点击事件里加一条广播,这个是重要的!!广播的值com.example.demo.FORCE_OFFLINE,这条广播就是通知程序让用户强制下线的。也就是说强制用户下线的逻辑是要写在广播接收器里面的,这样强制下线的功能就不会依附于任何界面,只要这样一条广播,就可以完成强制下线的操作了。
广播接收器的代码如下:
2.我们新建了一个对话框,值得注意的是,我们调用了setCancelable()方法将对话框设置为不可取消,否则用户一个Back键取消了对话框然后继续使用程序了。对于FLAG_ACTIVITY_NEW_TASK这个标志可以看一下源码介绍,我就不翻译了
3.最后在AndroidManifest文件中配置一下就可以了
- QQ强制下线的实现,Activity与Broadcast组件的在应用
- Broadcast的最佳实践 强制下线
- Broadcast实现强制下线功能
- 利用Broadcast实现强制下线
- Broadcast学习--模仿qq强制下线功能
- Android 使用BroadCast实现强制下线功能
- Android Broadcast--实现强制下线功能
- 实践--Broadcast实现强制下线功能
- Broadcast最佳实践--实现强制下线功能
- Android(Broadcast实现强制下线功能)
- 广播的实现--实现强制下线功能
- Android—强制下线功能的实现
- android广播的实践----实现强制下线
- 关于即时强制下线的实现
- 广播的巧妙利用——仿QQ实现强制下线功能
- 广播接收器的强制下线功能,在BaseActivtity中与单独创建ForceOffLineBroadcast的区别
- 强制下线通知-基于应用的系统级别对话框
- 实现记住密码功能(SharedPreferences的使用)与强制下线
- 空指针和迷途指针
- uestc 449(扫描线)
- IOS征途之二 OC实现继承
- Routos设置vpn
- [Android UI开发] Android中处理崩溃异常
- QQ强制下线的实现,Activity与Broadcast组件的在应用
- Unity3D逆向基础教程第二课
- linux 安装jdk及tomcat指定jdk版本
- android开发出现No Launcher activity found!
- Unity3D逆向基础教程第三课
- LeetCode Sqrt(x)
- 信息检索学习笔记
- Unity3D逆向基础教程第四课
- 递归算法及经典案例