androidstudio期末复习(挖穿Android第五十八天)
轮询获取最近的task, 如果发现是加锁的,跳EnterPwdActivity
重写返回事件,跳转到主页面
发送广播,看门狗跳过检测
相关优化
知识拓展:看门狗后台一直在运行,这样是比较耗电的。
我们要优化的的话怎么做呢?
在看门狗服务里,监听锁屏事件,如果锁屏了我就把看门狗停止(flag = false;);屏幕开启了,我就让看门狗开始工作启动服务并且flag = true;;
避免一次输入密码了不再输入;防止别人在我使用的时候,接着使用不用输入密码的情形;
也可以在锁屏的时候把mSkipPackageName赋值为空就行了。
利用activity启动模式修复密码输入bug1. 演示bug(进入手机卫士,按home退到后台,然后再打开加锁app,进入后发现跳转到手机卫士页面)
2. 画图分析,正常情况下的任务栈和bug时的任务栈图;
3. 解决问题;在功能清单文件EnterPwdActivity加上字段
<activity android:name="com.itheima.mobilesafe.EnterPwdActivity" android:launchMode="singleInstance"/>
4. 然后再画图分析正确的任务栈;
隐藏最近打开的activity长按小房子键:弹出历史记录页面,就会列出最近打开的Activity;
1. 演示由于最近打开的Activity导致的Bug;
2. 容易暴露用户的隐私
最近打开的Activity,是为了用户可以很快打开最近打开的应用而设计的;2.2、2.3普及后就把问题暴露出来了,很容易暴露用户的隐私。比如你玩一些日本开发的游戏:吹裙子、扒衣服这类游戏。你正在玩这些有些,这个时候,爸妈或者大学女辅导员过来了,赶紧按小房子,打开背单词的应用,这时大学女辅导员走过来说,干嘛呢,把手机交出来,长按一下小房子键,这个时候很尴尬的事情就产生了。
A:低版本是无法移除的。低版本记录近8个;想要隐藏隐私,打开多个挤出去;
B:4.0以后高版本就可以直接移除了。考虑用户呼声比较高。
3. 设置不在最近任务列表显示activity
<activity android:excludeFromRecents="true" android:name="com.itheima.mobilesafe.EnterPwdActivity" android:launchMode="singleInstance" />
4. 在装有腾X管家的模拟器演示腾X管理的程序锁功能;也没用现实最近的Activity,它也是这样做的。
腾讯管家和手机卫士同时加锁对比腾讯手机管家会更快一些, 所以我们需要再进一步优化手机卫士。
1.缩短每次巡逻时间
//将100改为20 try { Thread.sleep(20); } catch (InterruptedException e) { e.printStackTrace(); }
2.不频繁调用数据库
从数据库中读取所有已加锁应用列表,每次从集合中查询判断
mLockedPackages = mDao.getInstance(this).findAll();// 查询所有已加锁的应用列表 // if (mDao.find(packageName)) { // 查看当前页面是否在加锁的数据库中 if (mLockedPackages.contains(packageName)) {}
3.监听数据库变化, 更新集合
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com