在我的应用程序中,我使用光和接近传感器来检测手机的口袋功能,然后在检测完成后取消注册 SensorManager。但即使应用程序的 CPU 使用量仅显示 1-2 秒的使用量,电池使用量始终显示我的应用程序为否。列表中的 1 个应用令人担忧。
我已经使用了 SensorManager.unRegisterListener 并且还设置了 SensorManager = null,但情况还是一样。
我读过,由于一些错误,传感器没有正确取消注册。有什么好方法可以正确处理传感器吗?
请指导。奥姆卡尔·盖萨斯
使用来自应用程序的代码示例进行了更新 -
@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,但即使这样也无济于事。尽管调用了清理代码,但电池使用率仍然很高。该应用程序本身不应该使用太多电池,因为它是一个非常简单的应用程序,只有一个广播接收器和一个活动,但在活动中,我调用了光和接近传感器,我怀疑这些会导致电池使用量激增。不知道为什么。
任何帮助都是非常可观的。