上篇文章中提到,安全测试的一个需求是每次由后台切换到前台的时候都要走一遍登录界面,登录界面就是我的启动页,讲的是只要在配置文件中设置启动页activity的启动模式为singleTask就可以了,之后好像对这个效果不满意(是我解决的太快,感觉太简单了么??),所以给出了另外一种方案。
每次进到后台,从后台切换到前台的时候,只要不是在登录界面,就给弹一个dialog,提示用户输入密码验证身份,验证成功进入,点击取消的话进入到登录界面重新登录。
1、首先要解决的问题就是判断程序在前台还是在后台。
因为要监听所有的activity状态,所以判断应该写在BaseActivity中
/**
* 应用是否在前台运行
*
* @return true:在前台运行;false:已经被切到后台了
*/
private boolean isAppOnForeground() {
ActivityManager mActivityManager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
List appProcesses = mActivityManager.getRunningAppProcesses();
if (appProcesses !=null) {
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.importance