android service里的易做图 关闭屏幕就没了
求教啊service里的易做图 报错
不关屏幕没事 关了就坚挺不倒了
报错如下 :
unregisterListener:: all sensors, listener=com.lingzerg.hnf.step.StepDetector@4059ad08
=======>>>Sensor Thread RUNNING <<<========
E/SensorManager(5231): reg :: handle = 0
太费解了
只有少量手机有这个问题
大部分手机都没事 --------------------编程问答-------------------- 这个没办法处理,这是框架系统的处理,休眠前关闭所有非系统的应用。 --------------------编程问答--------------------
可是有些手机就没事啊
比如ME525 我有设置禁止休眠CPU
关闭屏幕无效啊
大部分手机都没事
就少量手机会这样 --------------------编程问答-------------------- 你注册的是什么listener?看看用foreground service能不能解决, --------------------编程问答--------------------
嗯啊 我注册的就是 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
是的,所以说没办法处理,由于是开源,Android的框架被各手机厂商改成各自的分格,所以有些可以,有些不可以,换句话说就是兼容性问题,没办法100%兼容。
补充:移动开发 , Android