app切换到后台一分钟后锁定,需要输入手势密码才能打开(程序锁)
#app切换到后台一分钟后锁定,需要输入手势密码才能打开(程序锁)
解锁规则:
- 未设置解锁密码,则什么都不用输入即可进入应用
- 1分钟内再次回到应用,无需输入密码、手势密码等即可进入
- 超过1分钟后回到应用,需输入手势密码即可进入
涉及到的点:
- 手势密码
- 如何判断app切换到后台和切换到前台
- 时间点的把控
- 通过广播通知打开手势密码解锁界面
逐一突破:
手势密码用了开源的项目
- https://github.com/sym900728/LockPattern
判断app是否切换到后台和前台
//应用前后台切换的判断registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {@Overridepublic void onActivityStopped(Activity activity) {Log.v("viclee", activity + "onActivityStopped");count--;if (count == 0) {timeStart = new Date().getTime();Logger.d("切到后台-->"+timeStart);}}@Overridepublic void onActivityStarted(Activity activity) {Log.v("viclee", activity + "onActivityStarted");if (count == 0) {Logger.d("切到前台");long timeEnd = new Date().getTime();Logger.d("时间差"+(timeEnd-timeStart));//切换到前台和切换到后台的时间差大于等于10sif(!isLock&&BaseApplication.isPassportLogin&&timeStart!=0&&timeEnd-timeStart>=1000*60){isLock = true;//app被锁Intent receiver = new Intent();receiver.setAction("GO_LOGIN");sendBroadcast(receiver);}}count++;}@Overridepublic void onActivitySaveInstanceState(Activity activity, Bundle outState) {
// Logger.d("onActivitySaveInstanceState");}@Overridepublic void onActivityResumed(Activity activity) {
// Logger.d("onActivityResumed");}@Overridepublic void onActivityPaused(Activity activity) {
// Logger.d("onActivityPaused");}@Overridepublic void onActivityDestroyed(Activity activity) {
// Logger.d("onActivityDestroyed");}@Overridepublic void onActivityCreated(Activity activity, Bundle savedInstanceState) {
// Logger.d("onActivityCreated");}});
- 时间点的把控
- 淘汰的想法:我开始想的是用服务,当app被切换到后台时候,开启服务计时,实现完毕后,觉得考虑到性能还有耗电量的问题,就放弃了
- 每当app切换到后台时候记录一个时间,当切换到前台时候,把当前时间和切换到后台时候记录的时间比较,这样来判断,具体参考上面代码中的
- 通过广播通知打开手势密码解锁界面
public class ForegroundTaskReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {//切换到前台了if(intent.getAction().equals("GO_LOGIN")){watchStack();}}/*** 监控任务栈*/public void watchStack() {byte[] getsurePassword = ACache.getInstance(BaseApplication.getContext()).getAsBinary(SPUtils.getString(BaseApplication.getContext(), "phone", ""));//有手势密码 && 超过1分钟if (getsurePassword != null && getsurePassword.length > 0) {Intent intent = new Intent(BaseApplication.getContext(), LockHandPasswordLoginActivity.class);// 服务或广播中打开Activity,需要设置此参数intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);BaseApplication.getContext().startActivity(intent);Logger.d("打开手势密码解锁接界面");}}
}
##demo下载地址
demo下载地址
app切换到后台一分钟后锁定,需要输入手势密码才能打开(程序锁)相关推荐
- Android app切到后台 返回首页,Android 如何保证App切换到后台,或页面跳转后,重新打开APP、或返回之前页面时,维持其状态不变...
项目中遇到的一些小问题,记录.分享一下. Android 如何保证App切换到后台,或页面跳转后,重新打开APP.或返回之前页面时,维持其页面状态不变? 1.问:当APP启动后,打开某一界面,然后点击 ...
- APP切换到后台时的运行规则以及如何实现后台运行
正常情况下,使用应用时,当用户按下home键,APP便被挂起(线程和runloop都会暂时挂起),但是依然驻留在内存中,这种状态下,如果不使用苹果允许的那几种一直在后台运行的方法(如播放音乐.定位等) ...
- excel 双击 计算机,Excel 2016双击文件打开后是空白,再次双击才能打开(或者通过文件,打开才能打开)...
问题描述: 直接双击excel文件打开后是空白的,几乎所有功能都无法使用.但是再次双击该文件能够打开,或者通过文件 --> 打开的方式才能打开. 虽说能够打开文件,但是对于咱们这种追求完美的人来 ...
- Excel 2016双击文件打开后是空白,再次双击才能打开(或者通过文件,打开才能打开)...
问题描述: 直接双击excel文件打开后是空白的,几乎所有功能都无法使用.但是再次双击该文件能够打开,或者通过文件 --> 打开的方式才能打开. 虽说能够打开文件,但是对于咱们这种追求完美的人来 ...
- android 杀死程序收不到推送_Android APP切换到后台接收不到推送消息
1. Android端进程被杀死后,目前自带的保护后台接收消息活跃机制.暂时没有什么好的机制保持任何情况下都活跃 android原生系统用home键杀进程可以起来,如果是强行停止就只能用户自己手动 ...
- 计算机桌面锁定了没设密码怎么解锁,电脑桌面锁屏怎么设置,电脑怎么给手机解锁...
现在很多的人在生活中的时候都会使用到电脑,可以这么说,现在人们无论是工作.学习还是娱乐. 都已经离不开电脑了. 我们在生活中的时候会出现一个情况,就是有时候会有事情需要离开电脑一会儿. 但是电脑里面又 ...
- 输入远程计算机地址后,不提示输入用户名密码直接进入计算机怎么回事,解决Windows远程桌面连接每次都提示输入密码的问题...
Windows 远程桌面连接几乎每天都用,所以使用的方便性非常重要.如果你经常用,也许会发现在某些系统中,每次连接都需要输入密码,即使已经保存了密码,并且密码是正确的也是如此. 这个问题是策略设置的 ...
- ios9定位服务的app进入后台三分钟收不到经纬度,应用被挂起问题及解决方案
原来定位服务是10分钟收不到定位信息就挂起定位,现在变为最短3分钟,估计都是为了省电吧.只要你开启应用的后台定位,并且10分钟有一次定位,那么苹果就不会关闭你的线程,现在变成3分钟.若你的应用开启了后 ...
- python输入错误提示再次输入_Python实现用户登录并且输入错误三次后锁定该用户...
实现用户登录并且输入错误三次后锁定该用户 我的测试环境,win7,python3.5.1 提示输入用户名,和密码 判断是否被锁定 判断用户名和密码是否匹配 输入错误三次,账号被锁定 思路 代码块 na ...
最新文章
- django restfull centos6.5 x86_64 python2.7
- python3循环遍历嵌套字典替换指定值
- 【python数据挖掘课程】二十.KNN最近邻分类算法分析详解及平衡秤TXT数据集读取
- 在.NET3.5平台上使用LinQ to SQL + NBear 创建三层WEB应用
- ASP.NET MVC中如何在客户端进行必要的判断
- 【君义精讲】高精度计算
- Building Web Parts for Microsoft SharePoint Products and Technologies
- 为何超四成人反感大数据应用
- android webview设置和遇到的坑
- ODI知识模块--IKM Oracle Incremental Update
- Python—爬取全国城市名称案例(Xpath方法)
- 昌平二中2021高考成绩查询喜报,北京2021高考成绩排名榜单,北京各高中高考成绩喜报...
- Temporal Action Proposal
- 30. Python------(面向对象练习)搬家具
- 百度地图 开启 绘制 功能(画圆)
- Linux学习2_Sinno_Song_新浪博客
- 哈理工 校赛(热身赛)2238 围巾的纠结(判断回路问题)
- CCIE自学-by闫辉NP视频:QoS小结
- 计算机组成原理——操作数寻址方式
- java关闭页面6,Selenium Java关闭浏览器
热门文章
- 中小板、创业板、新三板和科创板之间的区别
- 拼多多关键词搜索采集商品数据接口,拼多多分类ID搜索采集商品销量接口,拼多多上货接口,拼多多商品列表API接口
- java中根据权重随机获取数据
- 彻底关闭华为手机系统更新教程!防止系统自动更新!最详细教程!
- win10html5无法播放,Win10网页视频无法播放提示启用adobe flash player
- 艾司博讯:拼多多价格竞争力不足怎么办
- 机器学习-57-Unsupervised Learning-09-More about Auto-Encoder(无监督学习之更多有关自编码器的介绍)
- 程序员必做50题的解答
- linux 文件恢复 软件,EasyRecovery轻松实现Linux数据恢复
- 三星android se干啥得,结果竟然这样!看iPhone SE与最强Android旗舰三星S7对比!