设备处于活动状态时,Android Oreo上的后台服务

时间:2018-10-13 16:00:59

标签: android broadcastreceiver alarmmanager android-wake-lock android-doze

我正在运行一项服务,该服务需要在设备处于活动状态时读取陀螺仪数据,并在 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));

赞赏任何建议。

0 个答案:

没有答案