还是安全测试的原因,废话就不说了,直接进入正题
Activity生命周期中
onPause()中加入:
1 |
AtyModule.getinstance().onPause(this); |
onResume()中加入:
1 |
AtyModule.getinstance().onResume(); |
就Ok了。
AtyModule文件类如下,在合适的地方新建一个类就行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
package 包名.publics.tools; import android.app.Activity; import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; /** * Title: AtyModule<br/> * Description: 界面劫持监测方法<br/> */ public class AtyModule { /** * 用于执行定时任务 */ private Timer timer = null; /** * 用于保存当前任务 */ private List<MyTimerTask> tasks = null; /** * 唯一实例 */ private static AtyModule atyModule; private AtyModule() { // 初始化 tasks = new ArrayList<MyTimerTask>(); timer = new Timer(); } /** * 获取唯一实例 * * @return 唯一实例 */ public static AtyModule getinstance() { if (atyModule == null) { atyModule = new AtyModule(); } return atyModule; } /** * 在activity的onPause()方法中调用 * * @param activity */ public void onPause(final Activity activity) { MyTimerTask task = new MyTimerTask(activity); tasks.add(task); timer.schedule(task, 2000); } /** * 在activity的onResume()方法中调用 */ public void onResume() { if (tasks.size() > 0) { tasks.get(tasks.size() - 1).setCanRun(false); tasks.remove(tasks.size() - 1); } } /** * 自定义TimerTask类 */ class MyTimerTask extends TimerTask { /** * 任务是否有效 */ private boolean canRun = true; private Activity activity; public void setCanRun(boolean canRun) { this.canRun = canRun; } public MyTimerTask(Activity activity) { this.activity = activity; } @Override public void run() { activity.runOnUiThread(new Runnable() { @Override public void run() { if (canRun) { // 程序退到后台,进行风险警告 T.showLong(activity, "程序切换至后台运行,请注意观察运行环境是否安全!"); tasks.remove(MyTimerTask.this); } } }); } } } |
Comments | NOTHING