1.程序功能介绍
本程序实现对特定应用的监听,当特定应用前台运行时,立刻弹出本程序锁应用界面,用户输入正确密码后,才能转到特定应用继续使用,用户点击后退按钮无效,点击home键后,再启动被锁应用后,仍然调用输入密码界面。
2.关键知识点
定时器timer的使用,查看当前运行程序
getRunningAppProcesses()的使用,程序前后台转换
moveTaskToFront() 、
moveTaskToBack()的使用,监听点击home键
onUserLeaveHint()的重写使用,重写
onKeyDown()等。
3.程序实现
3.1定时器实现
用timer实现定时查看当前前台运行程序,如果是“微信”(本程序使用微信做例子),而且用户没有通过输入密码进入微信,则调用LockActivity.class,也就是写好的程序输入密码界面,并将本程序在前台显示,如果不加前台显示的代码,程序就不会弹出在屏幕上了……,具体代码如下:
public class TimerServer { boolean clock; public void timer(final Context context, boolean clock1){ //clock为程序锁标志位,true为启用程序锁功能,false为禁用程序锁功能, //当用户已经输入密码,进入被锁程序后,程序锁标志位为false;其他情况为true clock=clock1; Timer timer=new Timer(); final TimerTask timerTask=new TimerTask() { @Override public void run() { ActivityManager myActivityManager= (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> list= myActivityManager.getRunningAppProcesses(); List<ActivityManager.RunningTaskInfo> list_task= myActivityManager.getRunningTasks(100); //如果当前前台运行程序不是微信,则给微信加锁。