在我的应用程序中,我使用光线和接近传感器来检测手机的自付功能,然后在检测完成后取消注册SensorManager。但即使应用程序的CPU使用率仅显示1-2秒的使用情况,电池使用情况也会将我的应用程序显示为否。在名单中的1个应用程序令人担忧。取消注册SensorManager不起作用
我已经使用了SensorManager.unRegisterListener,并且还设置了SensorManager = null,但情况保持不变。
我读过,由于一些错误,传感器没有正确注册。任何正确处理传感器的好方法?
请指导。 OMKAR Ghaisas更新
与代码示例从应用程序 -
@Override
protected void onPause()
{
super.onPause();
unHookReceiver();
}
private void unHookReceiver()
{
if (r != null)
{
unregisterReceiver(r);
if(GetProximityPreference("EnableReceiveByProximity"))
{
mySensorManager.unregisterListener(proximitySensorEventListener);
mySensorManager.unregisterListener(lightSensorEventListener);
mySensorManager = null;
FileUtils.appendLog(FileUtils.GetCurrentDateTime() + " Power Consumption Log End");
FileUtils.appendLog("------------------------------------------------");
}
r = null;
}
}
我也是从一个岗位上stackpverflow设置的SensorManager = null作为每建议,但即使这样也无济于事。尽管调用清理代码,但电池使用量仍然非常高。该应用本身不应该使用太多的电池,因为它只有一个广播接收器和一项活动的非常简单的应用程序,但在活动中,我调用了光线和接近传感器,我怀疑这些会导致电池使用的高峰。不知道为什么。
任何帮助是非常可观的。
请发布一个示例应用程序,演示您的问题。或者,至少在您注销您的'SensorEventListener'的地方发布代码。 – CommonsWare
用上面的代码示例更新了帖子。 –