【发布时间】:2011-08-22 11:27:40
【问题描述】:
我必须在accelerometer、compass 等传感器之上设计一个Sensor Manager 类。这个项目将是一个class library 项目,将在其他需要来自传感器的数据的android 项目中被引用和使用设备。问题是,为了在我的Sensor Manager 类中使用accelerometer 和compass 之类的设备,我需要Context。我不知道在这种情况下如何访问当前上下文。
我应该要求我的Sensor Manager 的调用者/用户在某些方法的参数中传递Context 吗?如果有多个课程或活动使用我的传感器管理器怎么办?实际上我只会使用一个上下文,会不会引起问题?
或者是否有任何简单、安全和可靠的方法来获取当前应用程序的上下文?
更新
这是我目前的设计...
我已经为 SensorManager 以及 SensorManager 中的每个设备实现了单例。例如,SensorManager 中只有一个 Accelerometer 实例。调用者将获取 SensorManager,然后调用方法 RegisterForAccelerometer。因此,只要 SensorManager 的 Accelerometer 实例内的 Accelerometer 坐标有任何更新,所有注册的调用者都会收到通知。现在,当我第一次尝试开始监听加速度计的坐标时,问题就来了,因为我需要上下文。
【问题讨论】: