解决screen off 后service中的sensor不传数据问题

在Android应用中,当Service注册了一个Sensor监听器并且屏幕关闭时,onSensorChanged方法可能不会被调用。这个问题可以通过在Sensor注册后获取并持有wakeLock来解决。将wakeLock相关代码放在SensorManager.registerListener之前,可以确保Sensor数据在screen off状态下继续传递。此解决方案避免了升级或更换ROM的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://code.google.com/p/android/issues/detail?id=3708描述的同我的问题一样,也是在service中注册了一个sensor,可是一旦手机screen off了, 覆写的 public void onSensorChanged(SensorEvent event) 就不被框架调用了,这个问题困扰了很多天,在http://code.google.com/p/android/issues/detail?id=3708看到了46楼的解决方法,尝试了下,但是仍然没有效果,后来偶然将 wakeLock相关代码放置到  mSensorManager.registerListener(mStepDetector, mAccelerometer,        SensorManager.SENSOR_DELAY_FASTEST);之后,运行发现问题解决了。这样调动应该与我自身的逻辑有关,也说明了,这个问题是有方法解决的,不一定要升级rom,更换rom什么的,本来打算在http://code.google.com/p/android/issues/detail?id=3708回复的,结果因为我们都知道的原因,回复返回了400 error..哎。。。。只好简单记录与此

here is my way:


public class StepService extends Service {
   ....
   public void onCreate() {
      ...
     mSensorManager = (SensorM
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值