方向更改将使SensorManager参考无效

时间:2012-12-11 12:17:14

标签: android android-sensors android-location sensormanager

我正在创建一个附加位置和传感器侦听器的应用程序,以便它可以将更改记录到文件中。

奇怪的是,使用该应用程序的其中一部手机在某些情况下强制关闭,我缩小到方向更改:如果手机在录制过程中改变了方向,则我在活动中存储的SensorManager属性为'mSensorManager'然后将设置为null。

这引出了我的问题:我是否应该存储SensorManager参考,因为它是一个糟糕的设计选择?或者它没关系,我应该在使用之前检查引用是否为空吗?

编辑:要添加两件事:

  1. 我发现不仅加速度计和磁力计属性也无效(哪种有意义),还有 位置管理员(它没有做太多改变,因为它有 与方向确定无关);

  2. 我是否应将这些属性存储在活动以外的其他内容中,这不会使方向上的引用无效     改变?

  3. 对我来说是什么: 纠正侦听器,管理器和传感器实例化,从活动的生命周期内完成。然后唯一的问题是唤醒锁被摧毁,但我需要通过方向改变来保持。我将其更改为在活动生命周期期间获得,尽管处于不同的阶段。

2 个答案:

答案 0 :(得分:1)

  1. 在清单

    中的活动标记内添加此行后尝试
     android:configChanges="orientation|keyboardHidden"
    

    我猜它是无效的,因为方向改变onCreate是 呼吁该活动

  2. 尝试使用shared preferences
  3. 保存值

答案 1 :(得分:0)

它对我有什么影响:在活动的生命周期内纠正侦听器,管理器和传感器实例化。然后唯一的问题是唤醒锁被摧毁,但我需要通过方向改变来保持。我将其更改为在活动生命周期期间获得,尽管处于不同的阶段。