该类的成员变量只有4个:
屏幕的长,宽,一个守护线程DisableScreenSaverThread,还有一个lastPowerTick。注意他们都是static的。
lastPowerTick可以理解为上一次屏幕收到电脉冲的时间,收到脉冲就是不要进入屏保。该类中提供了一个函数hleKernelPowerTick用于更新这个变量,以防止屏幕进入屏保。
/
start函数(注意这个函数是public static)的行为是:
将守护线程DisableScreenSaverThread实例化,并启动这个守护线程。
/
DisableScreenSaverThread的行为是:
睡眠一分钟,醒来取得当前时间,并且和lastPowerTick比较,如果差值小于一分钟,说明在该线程睡眠期间(一分钟),有人调用了hleKernelPowerTick,就使用robot移动鼠标,从而禁止屏幕保护程序
如果差值不小于一分钟,说明在该线程睡眠这一分钟内,无人调用hleKernelPowerTick,就不做禁止屏保的操作。
/
有失直觉的是,画布竟然没有作为Screen类的一个成员变量。