我正在制作一个附加位置和传感器侦听器的应用程序,以便它可以将它们的更改记录到文件中。
奇怪的是,其中一部使用该应用程序的手机在某些情况下是强制关闭的,我将其缩小为方向变化:如果手机在录制过程中改变了方向,那么我在活动中存储为“mSensorManager”的 SensorManager 属性将是设置为空。
这引出了我的问题:我是否应该存储 SensorManager 参考,因为它是一个糟糕的设计选择?还是可以,我应该在使用之前检查引用是否为空?
编辑:要添加两件事:
我发现不仅加速计和磁力计属性也被取消了(哪种有意义),而且位置管理器(没有太大变化,因为它与方向确定无关);
我是否应该将这些属性存储在活动以外的东西中,这不会在方向更改时使引用无效?
它为我做了什么: 更正要在活动生命周期内完成的侦听器、管理器和传感器实例化。然后唯一的问题是唤醒锁,它被破坏了,但我需要保持方向变化。我也将其更改为在活动生命周期中获取,尽管是在不同的阶段。