【问题标题】:Unable to Keep Screen from Sleeping in Android 4.2在 Android 4.2 中无法让屏幕保持休眠状态
【发布时间】:2012-11-12 20:04:05
【问题描述】:

我有一个为 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();

我也把这个放在布局文件里

android:keepScreenOn="true"

但是,应用程序的屏幕本身在整个测试过程中不可见,因为 Chrome 始终是前台窗口,并且浏览器启动器是一项服务,并且唤醒锁在该服务中。

知道如何防止屏幕超时吗?似乎没有任何效果。

【问题讨论】:

  • android:keepScreenOn="true" 在您的情况下是无用的,因为只有当相关小部件在前台时才会影响设备,而您的不在前台。

标签: android wakelock


【解决方案1】:

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

android:keepScreenOn="true"

:)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 2010-12-30
      相关资源
      最近更新 更多