问题来自于一篇文章:手机QQ后台为何清不掉?MIUIproject师:全靠1像素的页面保命

出于好奇,想知道这一像素究竟是啥东西,用手机安全管家控制QQ的悬浮窗权限:

关闭QQ的悬浮窗权限,通过后台一键清理,又一次打开QQ,发现是从splash開始的;

打开QQ的悬浮窗权限,一键清理后,打开QQ。发现是直接进入主界面的。说明一键清理未清理QQ,或者清理之后,QQ又自启动了。

至于。是未被清理还是自启动,后面再探究一下。这里就说说这个一像素的悬浮窗。

        Button button = new Button(getApplicationContext());
WindowManager wm = (WindowManager) getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams(); /**
* 下面都是WindowManager.LayoutParams的相关属性 详细用途请參考SDK文档
*/
wmParams.type = LayoutParams.TYPE_PHONE; // 这里是关键,你也能够试试2003
wmParams.format = PixelFormat.RGBA_8888; // 设置图片格式,效果为背景透明
/**
* 这里的flags也非常关键 代码实际是wmParams.flags |= FLAG_NOT_FOCUSABLE;
* 40的由来是wmParams的默认属性(32)+ FLAG_NOT_FOCUSABLE(8)
*/
wmParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
| LayoutParams.FLAG_NOT_FOCUSABLE
| LayoutParams.FLAG_NOT_TOUCHABLE;
wmParams.width = 40;
wmParams.height = 40;
wm.addView(button, wmParams); // 创建View

加入权限

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

就这么简单加入了一个悬浮窗,无论返回launcher还是打开什么应用,都会一直显示这个button。

QQ的这个悬浮窗是做得比較小,应该还是透明的,还会放在靠边或者角落里,假设通过这个悬浮窗来保证QQ始终在后台进程,带我再探究一下。

最新文章

  1. Linux下常用压缩 解压命令和压缩比率对比
  2. 国内经典BI系统架构分析
  3. Thread.Sleep vs. Task.Delay
  4. Java知多少(109)数据库更新
  5. Java Web表达式注入
  6. ZOJ3161
  7. java 随机数的生成
  8. 获取openId | 小程序
  9. js脚本根据身份证号获取性别、年龄、家庭地址、生日
  10. 数据库之mac上mysql root密码忘记或权限错误的解决办法
  11. 详解Lambda
  12. 【svn】本地文件夹同步到SVN
  13. JDBC学习DayTwo
  14. javaweb项目中errorPage的问题
  15. python实现base64算法加密
  16. cocos2dx ScrollView的用法
  17. canvas时钟demo
  18. idea debug启动项目慢或者启动不了
  19. React跨域问题解决
  20. SharePoint解决方案及开发系列(1)-BPM

热门文章

  1. C# 数据库写入Sql Bulk索引损坏异常问题System.InvalidOperationException: DataTable internal index is corrupted: &#39;4&#39;
  2. C# IEnumerable to List 的转换
  3. 喵星球上的点名(bzoj 2754)
  4. 容器 What, Why, How
  5. javascript 函数重载另一种实现办法
  6. linux time
  7. The Process class relies on proc_open, which is not available on your PHP installation
  8. android showmessage
  9. Android获取窗口可视区域大小: getWindowVisibleDisplayFrame()
  10. 9.【nuxt起步】-scroll分页加载