Android 在这种情况下,我应该如何获取上下文?

Android 在这种情况下,我应该如何获取上下文?,android,android-context,Android,Android Context,我必须在传感器上设计一个传感器管理器类,如加速计,指南针等。该项目将是一个类库项目,将在其他需要传感器设备数据的安卓项目中引用和使用。问题是,为了在我的传感器管理器课程中玩像加速计和指南针这样的设备,我需要上下文。我不知道在这个场景中如何访问当前上下文 我是否应该要求我的传感器管理器的调用方/用户在某个方法的参数中传递上下文?如果多个课程或活动将使用我的传感器管理器,该怎么办?实际上,我只会使用一个上下文,它会导致问题吗 或者是否有任何简单、安全和可靠的方法来获取当前应用程序的上下文 更新 这是

我必须在传感器上设计一个
传感器管理器
类,如
加速计
指南针
等。该项目将是一个
类库
项目,将在其他需要传感器设备数据的安卓项目中引用和使用。问题是,为了在我的
传感器管理器
课程中玩像
加速计
指南针
这样的设备,我需要
上下文
。我不知道在这个场景中如何访问当前上下文

我是否应该要求我的
传感器管理器的调用方/用户
在某个方法的参数中传递
上下文
?如果多个课程或活动将使用我的传感器管理器,该怎么办?实际上,我只会使用一个上下文,它会导致问题吗

或者是否有任何简单、安全和可靠的方法来获取当前应用程序的上下文

更新

这是我目前的设计


我已经为SensorManager以及SensorManager中的每个设备实现了singleton。例如,SensorManager中只有一个加速度计实例。调用者将获得SensorManager,然后调用方法RegisterForAccelerMeter。因此,每当SensorManager的加速计实例内的加速计坐标发生任何更新时,都会通知所有注册呼叫者。现在问题来了,当我第一次尝试开始听加速度计的坐标时,因为我需要上下文。

一个上下文对您来说是不够的。取决于您的实现和需要,您可能希望在映射中存储上下文或仅用于特定操作,因此这将影响传递此上下文的方法和时间


我可以粗略地说,如果你用它来构造一个新的对象,它将使用上下文,或者如果你有一个单例,在这个调用中请求上下文,如果你创建了多个类实例,在构造函数/工厂方法中传递它。

在我看来,您必须传递使用这些设备的特定
活动的
上下文。我假设您并没有将这些类作为
Singleton
创建

另外,如果您想将类设置为
单例
,我想您可以传递
应用程序上下文
,而不是
活动上下文
,但我不确定这是否可行

更新:

有关
应用程序
上下文,请参阅此

通常不需要对应用程序进行子类化。在大多数情况下,静态单例可以以更模块化的方式提供相同的功能。如果您的单例需要全局上下文(例如注册广播接收器),则可以为检索该上下文的函数提供一个上下文,该上下文在首次构造单例时在内部使用context.getApplicationContext()


因此,无论您在哪个活动中,您都将通过此
应用程序
上下文

我已经用设计细节更新了问题。请看一看。可能是设计不正确,因为我试图使用一个上下文监听多个客户机/呼叫者?@MByD-1,看不出多个上下文的任何原因-这是一个巨大的泄漏可能性。它应该由一个ApplicationContext实现。如何在SensorManager类中获取应用程序上下文?我已经尝试了所有方法,但在我的情况下,如果一个单独的类库项目需要上下文,则没有任何方法不起作用。您是否有任何正在运行的代码?