Android变相拦截Home键,使app一直运行在前端

首先,声明一下楼主不是流氓程序猿,也很痛恨流氓软件。主要是媳妇最近要考试,想让我写个程序把她手机锁一段时间,让她安心看书。。。好吧主观能动性太差的表现==。于是楼主就琢磨起来怎么能够实现这样的需求。

首先返回键和菜单键就不赘述了,网上有很多例子可以拦截。但是home键是受系统保护的,安卓版本低的时候还可以糊弄一下,但现在安卓9.0了想实现起来真不太现实,那就曲线救国吧。

想法是在onPause方法里面重新启动我们的Activity,每次调用,我们都重新回到自己的页面。测试发现有一个问题,按Home键退出后,需要等到3-5s左右的时间才能回到Activity。网上百度了一圈,上图

Android变相拦截Home键,使app一直运行在前端_第1张图片

启动方法替换掉之后,能够迅速调用,基本实现了想要的需求。

因为楼主在页面里面实现了一个计时器的功能,所以把launchMode设置成了SingleInstance,这样就不会每次都启动一个新的app,计数时间保留,到一定时间app会自行退出。

最后总结:想要阻拦home键还是很流氓的。以上方法测试发现快速按home键还是能够重新回到桌面来杀掉app进程的,可能还需要一个service去轮询判断app是否在前端运行。有相似需求的老铁们还是想着跟那些产品设计刚一波正面吧,毕竟这样的需求太反人类了!

你可能感兴趣的:(感悟)