我正在运行一项服务,该服务需要在设备处于活动状态时读取陀螺仪数据,并在 Android 8 Oreo 上进行测试。
问题是我只在短时间内接收到传感器读数,然后读数停止,并且后台进程停止记录任何数据-我认为这与电池优化有关,可能是打ze睡模式。
我只对设备处于活动状态时的数据感兴趣,因此在设备处于空闲状态时不需要激活后台进程。
我尝试收听“设备处于活动状态”的指示性行为,但是没有运气-用户活动后不会立即发送它们正是我感兴趣的。
// those actions are not broadcasted as expected.
registerReceiver(mybroadcast, new IntentFilter(Intent.ACTION_USER_PRESENT));
registerReceiver(mybroadcast, new IntentFilter(Intent.ACTION_SCREEN_ON));
// this action is not helpful because it's only related to device
// getting in/out of idle mode, but not "active"
registerReceiver(mybroadcast, new IntentFilter(Intent.ACTION_DEVICE_IDLE_MODE_CHANGED));
赞赏任何建议。