java - 服务中的方向监听器

标签 java android orientation listener sleep

我正在编写一个在 BackgroundThread 中启用 OrientationEventListener 的粘性服务。目前,监听器通过 onDestroy() 和/或手动停止服务时被禁用,但在设备进入休眠状态时它保持 Activity 状态。我猜这会影响电池,因为 SensorManager 保持 Activity 状态。如何在设备进入休眠状态时停止服务(或禁用监听器)并在打开设备时再次启动服务(或启用监听器)?

这是背景线程:

private class BackgroundThread implements Runnable {
    public void run() {
        try {
            while (isRunning){                  
                orientListener.enable();
                Thread.sleep(10000);
            }
            orientListener.disable();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

谢谢你的帮助!

最佳答案

This question应该回答你的。它指向 this article这解释了如何知道屏幕何时打开和关闭。

关于java - 服务中的方向监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10395792/

相关文章:

swift - 快速锁定某些 View 的旋转

android - 当我的 Android 设备不平时,我应该如何计算方位角、俯仰角和方向?

java - 我想将整数,字符串,对象, double ,位图,HashMap从一个 Activity 发送到android中的另一个 Activity

java - 使用 TITAN DB 手动安装 gremlin 服务器

java - 读取带有公式的单元格给出与 Excel 文件不同的结果 - Java Apache POI

java - findViewById() 返回无法找到符号,但 ID 已在布局中定义?

android - 如何在抽屉导航 fragment 中放置两个回收 View

java - 为 Servlet 应用程序指定目标参数

android - 如何用 Fab 打开 NavigationDrawer?

delphi - 如何查找用户在 Rave 中选择的页面方向 (Delphi 7)