我正在创建一个需要检测手机检测到的最大加速度的应用程序。目前它可以工作,但是当屏幕关闭时,它无法继续任务。为了实现现在的功能,我在onCreate
中编写了以下内容:
mSensorManager = getSystemService(SENSOR_SERVICE) as SensorManager
mAccelerometer = mSensorManager!!.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION)
我已经在类中全局初始化了这些变量。然后我实现了
onSensorChanged()
,onResume()
,onPause()
并留空了onAccuracyChanged
。据我所知,实现这样的函数与更简单地创建异步任务是不同的。我该如何改变它以使其在后台工作?谢谢!
WakeLock
(尝试保持手机CPU处于唤醒状态)。最有可能的是,您还需要始终将手机插入电源,否则Doze模式将中断您的WakeLock
并允许CPU停止。即使这样做了,它也取决于设备制造商是否支持您所需的传感器在关闭屏幕时工作 - 这并不是保证的。 - CommonsWare