无法在Android 4.2中保持屏幕不睡觉

时间:2012-11-24 22:31:41

标签: android wakelock

我有一个简单的电池测试应用程序,我为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始终是前台窗口,浏览器启动器是服务,而唤醒锁是服务中的。

知道如何防止屏幕超时吗?似乎没什么用。

2 个答案:

答案 0 :(得分:2)

只需在XML文件中添加以下行......

机器人:keepScreenOn = “真”

:)

答案 1 :(得分:0)

我猜想Android正在杀死你的服务并导致你的唤醒锁被释放。尝试让您的服务在前台运行(使用startForeground())并查看是否有帮助。