检测应用位于后台,并弹出手势解锁,解锁成功进入主界面

功能描述:

1,开启了手势解锁,也就是打开了开关以后,第一次登陆进入会拦截下,判断有没有设置手势锁,有的话登录成功进入主界面前要弹出手势解锁界面,没有开启则直接进入主界面
2,在退出app,不是退出登录的情况下,也就是位于后台,再次进入如果开启了手势解锁要弹出解锁界面,没有则直接进入
3,不管是主界面还是其他,只要位于后台了,开启了手势解锁,再次进入弹出解锁,解锁成功进入主界面,也不管他之前停留的界面,只要解锁成功就是主界面

思路误区:

第一种想法是
在开关设置中,当开关打开则保存sp为true,否则为false,默认也为false,在BaseActivity的onResume或者onRestart方法中调用,根据sp的值进行判断,是否跳转到手势界面,最终失败,因为每个界面都会走这两个方法,导致跳转也会弹出手势界面,所以这个方法是不行的,第二种想法是创建一个service,在service里面获取当前应用的包名和手机栈顶应用包名,如果当前应用包名等于手机栈顶应用包名,说明用户打开了app,监听到用户打开了app,并且sp中的值为true,则弹出手势界面,在开关的打开关闭中开启和关闭服务,但是打开以后,每次进入在哪个方法中检查呢,试过了在application,但是application的oncreate是在创建时调用的,也不行,询问朋友,最终在朋友的帮助下得到解决,也是在BaseActivity里面操作,添加判断是否位于后台的方法。位于后台,且sp中的值为true,则弹出手势解锁,添加一个flag在默认flag为false,onStop中如果位于后台设置为true,判断flag是否为true,如果为true再判断sp中的值是否为true,如果两者都满足,则跳转到手势界面,当然在flag为true的代码块中,要把flag赋值为false,具体看代码

判断是否位于后台的方法


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值