我有一个简单的电池测试应用程序,我为Android编写,现已成功用于多个版本。它在Android 4.1中运行良好该应用程序只需将Chrome浏览器启动到不同的网站,将时间记录到数据库,等待60秒并重新执行。
现在,在Android 4.2中,屏幕关闭,系统进入睡眠状态,尽管事实上我有一个唤醒锁,并设置了屏幕超时,从不使用设置。最令人讨厌的是它在不确定的时间关闭,而不是在开始测试后的固定时间。知道我需要做什么吗?
这是我在服务中调用的唤醒锁代码,它一遍又一遍地启动浏览器。
super.onCreate();
// Wakelock
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag");
wl.acquire();
我也把它放在布局文件中
机器人:keepScreenOn = “真”
但是,应用程序的屏幕本身在整个测试过程中都不可见,因为Chrome始终是前台窗口,浏览器启动器是服务,而唤醒锁是服务中的。
知道如何防止屏幕超时吗?似乎没什么用。
答案 0 :(得分:2)
只需在XML文件中添加以下行......
机器人:keepScreenOn = “真”
:)
答案 1 :(得分:0)
我猜想Android正在杀死你的服务并导致你的唤醒锁被释放。尝试让您的服务在前台运行(使用startForeground())并查看是否有帮助。