0

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

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

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

编辑:要添加两件事:

  1. 我发现不仅加速计和磁力计属性也被取消了(哪种有意义),而且位置管理器(没有太大变化,因为它与方向确定无关);

  2. 我是否应该将这些属性存储在活动以外的东西中,这不会在方向更改时使引用无效?

它为我做了什么: 更正要在活动生命周期内完成的侦听器、管理器和传感器实例化。然后唯一的问题是唤醒锁,它被破坏了,但我需要保持方向变化。我也将其更改为在活动生命周期中获取,尽管是在不同的阶段。

4

2 回答 2

1
  1. 在清单中的活动标记内添加此行后尝试

     android:configChanges="orientation|keyboardHidden"
    

    我想这是无效的,因为onCreate该活动需要改变方向

  2. 尝试使用共享首选项保存值
于 2012-12-11T12:21:51.927 回答
0

它为我做了什么:更正要在活动生命周期内完成的侦听器、管理器和传感器实例化。然后唯一的问题是唤醒锁,它被破坏了,但我需要保持方向变化。我也将其更改为在活动生命周期中获取,尽管是在不同的阶段。

于 2012-12-21T16:12:41.083 回答