程序对自己锁定,类似钉钉

图片1图片1

类似于钉钉,最近需要做个需求,要求在程序退到后台后一段时间返回时,要进行锁定,以及在屏幕锁定后对app锁定,类似于钉钉的安全锁;但是网上的似乎都是像360那样对别的程序加锁,对自己的话就会死循环;

思前想后,也参照了360的代码,终于也实现了这样的效果;如图:

图片2

  下面是实现的过程及思路:


实现:

1.实现后台返回加锁:

思路:

1.编写一个watchdogService,在子线程中监听,每一秒请求查看当前栈与app对应的栈是否相同;

2.在Application编写一个基于整个app的变量isLock,设定是否需要锁定;

3. 如果当前栈与app的名字一样,且isLock为false,则为不锁定状态;

· 如果当前栈与app的名字一样,但isLock为true,则跳到锁定页;

如果当前栈与app的不同,则对变量i累加,当i>10,则设置isLock=true,所以当app到前台时,会跳入上面的条件,对app加锁;

实现:

获取当前栈:

图片1_0

开启线程监听

图片3_1


2 .实现屏幕系统锁屏后对app加锁

思路:注册广播,系统在屏幕熄灭,亮起,以及解锁动作都会有广播,所以只要接收这个广播就可以知道屏幕状态,继而加锁;

实现:

图片2_1

注:

在每次跳转时,要检测是否存在watchDogActivity,有的话将旧的销毁,防止出现多个锁屏页; 

图片3_1

在服务销毁时,需要对广播销毁,否则会抛广播未销毁异常

图片3_3

至此,实现了对app自己的一个安全锁功能;配合sharepreference就可以实现动态选择是否加锁了。

源码:http://download.csdn.net/detail/ye1208030123/9426638

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值