启动服务防止app劫持
app劫持就是某个应用来监测我们的app的动态
当我们比如启动了某个需要输入密码的界面比如登录,支付这种敏感界面
这个流氓应用就启动一个activity来覆盖我们的activity
这样我们就可能把密码输入到流氓应用里面去了
所以我们要启动一个service
来监测我们的app的状态
当我们app是运行的,但是现在系统的首个activity不是我们的应用的时候
就进行提示
先创建服务
public class PreventKidnapService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
handler.sendEmptyMessage(0);
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//获取管理器和进程列表
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appList = manager.getRunningAppProcesses();
//遍历进程列表,找到应用进程
if (appList != null && !appList.isEmpty()) {
for (ActivityManager.RunningAppProcessInfo app : appList) {
if (app.processName.equals(getPackageName())) {
//判断app处于前台还是后台
if (app.importance != ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
//处于后台
} else {
//处于前台
}
}
}
}
//循环监测
sendEmptyMessageDelayed(0, 5000);
}
};
}
要在androidmanifest里面注册一下
<service android:name=".service.PreventKidnapService"></service>
在application里面启动服务
startService(new Intent(this, PreventKidnapService.class));
在程序终止的时候去停止服务
@Override
public void onTerminate() {
super.onTerminate();
stopService(new Intent(this, PreventKidnapService.class));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)