位置: 编程技术 - 正文

[安卓]手机管家(十九)软件管理之软件锁(安卓手机管家哪个好用)

编辑:rootadmin

推荐整理分享[安卓]手机管家(十九)软件管理之软件锁(安卓手机管家哪个好用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:安卓手机管家是什么,安卓手机管家怎么关闭,安卓手机管家在哪里打开,安卓手机管家是什么,安卓手机管家如何卸载,安卓手机管家,安卓手机管家是什么,安卓手机管家,内容如对您有帮助,希望把文章链接给更多的朋友!

要对已经安装的APP加锁,也就说不能改动这个APP

而要实现这个功能,可以偷巧,在要启动的APP即将启动之前,进入加锁的activity

经典的功能watchdog,看看用户触动了哪个功能,很多软件里都有,尤其是安全软件

不能写在activity里,生命周期的问题,需要启动一个service,在后台监听

manifest注册

在main里启用启动后时时刻监视哪个程序被启用

service里一般不能用while(true)来判断,这样很容易阻塞,应该在外面加一个thread

由于要动态监测系统的服务,这里需要权限

这里要获得当前被启动的APP,这就需要任务栈,要任务栈就需要activity管理器

任务栈里面按照执行顺序存放着activity,当你拿一个时,就是当前的activity

如何知道哪一个被我们加锁的的程序被启动呢?以短信为例

判断一下

注意,由于是service跳转到activity,需要设置一个flag,activity间的跳转不需要

跳转成功后,在watchdog的activity上可以加上一些东西,输入密码解锁

现在有个问题,跳到watchdog后,退回,又会跳回来

需要在main里加一个onBackPressed

让用户选择,在setting里加入一条自定义控件

声明找到初始化调用这个过程中,manifest里加上了权限、activity、service

现在来完善上锁 判断的时候应该获取包名,看他是不是加锁了,没加锁就锁上,锁了就不动

需要在软件管理的list里面操作下

长按加锁、解锁

item_appmanager_appinfo里加一个imageview

APPmanageractivity里加上OnItemLongClickListener也是通过position获得APPinformation

现在实现的功能是长按换图标

我们要把 应用 上锁状态改变的情况放到数据库,应用名,上锁情况

openhelper

dao接口APPmanageractivity里初始化dao

注意不能给自己加锁

回显问题首先 holder复用其次 默认未上锁,要查询是否上锁

来完成跳转后的判断上锁问题

要根据数据库中的状态来判断是否要上锁

完善用户体验

跳转后显示之前的软件名和图标

watchdog的activity里要获取到包名,由于是从service里跳过来的,要在service里塞一个

button响应

OK,有几个bug

进入MobilphoneManager的软件管理,然后点击home

这时候他去了后台,没有清空,这时候任务栈里有两个activity,下面是home,上面是软件管理

[安卓]手机管家(十九)软件管理之软件锁(安卓手机管家哪个好用)

现在点一个APP,这时应该跳转到看门狗,也就是在之前的任务栈里又加了一个,这时候填密码点击,等于是把自己,看门狗销毁了

这时候回显的是之前的两个activity,点击两次退回才能看到被点击的APP

要解决这个问题,我们最好能单独给看门狗起一个任务栈

在manifest里给看门狗声明的部分加一个launchmode:singleInstance

另一个问题,解锁后循环加锁解锁

这时候解完锁要设置一个标记,而不是直接销毁

C&#;&#; 什么的设置一个全局变量就好

这里考虑activity发一个广播 service里来一个接收者

接收者动态注册这时候一解锁就发消息,此时就可以判断

先接收

判断之

另一个bug

对某APP加锁密码输入不对,直接按home键出来了,然后再进一个app,发现图标和名称不对,显示的是前一个APP

还是任务栈和生命周期的问题,按home键后,先onpause,然后onstop,看不见了,然后进去,直接onrestart,onresume,没有oncreate,图标不会更新

把相关代码放到onresume里,或者在onstop里干掉自己,一下次就会oncreate

watchdogactivity

优化,查询数据库很耗时,将查询结果放在内存录,弄一个list的数据结构,list放在内存里,查了一次后就放进去了

要去dao里做添加一个查询list

去service初始化

节省了时间,有可能会内存不够用,其实还可以优化什么比特。。

然后在判断的时候,进这个list

OK,现在又出现一个bug

给几个APP加锁后退出,再随便点击别的某个APP,发现不会跳转

因为list被固定了,和数据库不同步

需要数据库的一个内容观察者,在数据库发生变化时通知下

需要一个getcontext

service里需要一个观察者,发生变化时则重新查一下数据库

要注册下,发生变化,则调用上面的onchange重新查

至此核心功能都已经实现,还可以继续做的主要就是密码的问题,保存啊,是否设置同一个密码啊等等

版权声明:本文为博主原创文章,未经博主允许不得转载。

菜鸟的安卓实习之路---如退出应用程序 如何正确的退出应用程序?1最初的方案,是建立一个activity的栈,每当有一个新的activityonCreate()的时候,就把他加入到这个栈中,在希望退出的时候

[置顶] WebView加载完成与显示完成的区别 转载请加地址:

Android Studio学习配置-SDK Manger镜像源设置,不用翻墙也能飞速下载sdk SDKManager镜像源设置Tools-ManagerAdd-onSites...首先把谷歌默认源全部取消选择每个源都New进去

本文链接地址:https://www.jiuchutong.com/biancheng/382147.html 转载请保留说明!

上一篇:小米手机从图库选择图片时,返回的URI不正确的问题(小米手机图库图标)

下一篇:菜鸟的安卓实习之路---如退出应用程序(菜鸟教程安卓)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络