求教啊service里的监听器 报错
不关屏幕没事 关了就坚挺不倒了
报错如下 : 
unregisterListener:: all sensors,  listener=com.lingzerg.hnf.step.StepDetector@4059ad08
=======>>>Sensor Thread RUNNING <<<========E/SensorManager(5231): reg :: handle = 0太费解了
只有少量手机有这个问题
大部分手机都没事 

解决方案 »

  1.   


    可是有些手机就没事啊
    比如ME525 我有设置禁止休眠CPU
    关闭屏幕无效啊大部分手机都没事
    就少量手机会这样
      

  2.   

    你注册的是什么listener?看看用foreground service能不能解决,
      

  3.   


    嗯啊 我注册的就是 SensorEventListener
    是让一个类继承过去的
    我把代码发出来这里是service里的初始化传感器
    private void registerDetector() { 
       Log.v(TAG, "registerDetector"); 
       mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
       
       Log.v(TAG, String.valueOf(Sensor.TYPE_ACCELEROMETER)); 
       mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
       mSensorManager.registerListener(mStepDetector,mSensor,SensorManager.SENSOR_DELAY_FASTEST); 
    } 唤醒CPU
    private void acquireWakeLock() { 
        Log.v(TAG, "acquireWakeLock"); 
         
         PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
         int wakeFlags; 
         if (wakeAggressively()) { 
             wakeFlags = PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP; 
             
         } 
         else if (keepScreenOn()) { 
             wakeFlags = PowerManager.SCREEN_DIM_WAKE_LOCK; 
         } 
         else { 
             wakeFlags = PowerManager.PARTIAL_WAKE_LOCK; 
         } 
         wakeLock = pm.newWakeLock(wakeFlags, TAG); 
         wakeLock.acquire();   
         
    } public boolean wakeAggressively() { 
       Log.v(TAG, "wakeAggressively"); 
       return mSettings.getString("operation_level", "run_in_background").equals("wake_up"); 
    } public boolean keepScreenOn() { 
       Log.v(TAG, "keepScreenOn"); 
        return mSettings.getString("operation_level", "run_in_background").equals("keep_screen_on"); 
    } 监听事件:
    public class StepDetector implements SensorEventListener
      

  4.   


    是的,所以说没办法处理,由于是开源,Android的框架被各手机厂商改成各自的分格,所以有些可以,有些不可以,换句话说就是兼容性问题,没办法100%兼容。