我正在创建一个附加位置和传感器侦听器的应用程序,以便它可以将更改记录到文件中。
奇怪的是,使用该应用程序的其中一部手机在某些情况下强制关闭,我缩小到方向更改:如果手机在录制过程中改变了方向,则我在活动中存储的SensorManager属性为'mSensorManager'然后将设置为null。
这引出了我的问题:我是否应该存储SensorManager参考,因为它是一个糟糕的设计选择?或者它没关系,我应该在使用之前检查引用是否为空吗?
编辑:要添加两件事:
我发现不仅加速度计和磁力计属性也无效(哪种有意义),还有 位置管理员(它没有做太多改变,因为它有 与方向确定无关);
我是否应将这些属性存储在活动以外的其他内容中,这不会使方向上的引用无效 改变?
对我来说是什么: 纠正侦听器,管理器和传感器实例化,从活动的生命周期内完成。然后唯一的问题是唤醒锁被摧毁,但我需要通过方向改变来保持。我将其更改为在活动生命周期期间获得,尽管处于不同的阶段。
答案 0 :(得分:1)
在清单
中的活动标记内添加此行后尝试 android:configChanges="orientation|keyboardHidden"
我猜它是无效的,因为方向改变onCreate
是
呼吁该活动
答案 1 :(得分:0)
它对我有什么影响:在活动的生命周期内纠正侦听器,管理器和传感器实例化。然后唯一的问题是唤醒锁被摧毁,但我需要通过方向改变来保持。我将其更改为在活动生命周期期间获得,尽管处于不同的阶段。