0

我制作了一个应用程序,它可以读取接近传感器的值并根据该数据执行某些操作。我的问题是,即使用户按下主页按钮并离开应用程序,这些操作也会继续执行,从而导致电池耗尽。

我的问题是一旦应用程序存在或按下主页按钮时如何关闭接近传感器(没有正确退出应用程序)

这是我的第一个安卓应用。这是我在代码中分配接近传感器的方法:

    sm = (SensorManager) getSystemService(SENSOR_SERVICE);
    proxSensor = sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);

    sm.registerListener(this,proxSensor,SensorManager.SENSOR_DELAY_NORMAL);

谢谢

编辑 对于那些想知道并且不想查找它的人,我使用以下方法解决了它:

public void onPause()
{
    super.onPause();
    sm.unregisterListener(this);
}
public void onResume()
{
    super.onResume();
    sm.registerListener(this,proxSensor,SensorManager.SENSOR_DELAY_NORMAL);
}
4

2 回答 2

3

查看 Activity 方法onStop()。只要 Activity 不再可见(应用程序退出或按下主页按钮),就会调用它。正是在这种方法中,您将在其中放置代码以停止接近传感器。

有关更多信息,请参阅此处的 Android 活动生命周期图:

http://developer.android.com/reference/android/app/Activity.html

于 2014-05-26T00:55:41.900 回答
1

应用程序不会在 Android 上退出。最多活动将完成。但是要在另一个活动处于活动状态时关闭行为,请在活动的 onPause 中将其关闭。

于 2014-05-26T00:42:14.887 回答