获取服务中的上下文

有没有可靠的方法从Service获取Context

我想为ACTION_PHONE_STATE_CHANGED注册一个广播接收器,但我不需要我的应用程序总是获取这些信息,所以我不把它放在Manifest

但是,当我需要这些信息时,我不能让广播接收机被GC杀死,所以我正在向一个Service注册广播接收机。

因此,我需要一个Context来调用registerReceiver() 。 当我不再需要ACTION_PHONE_STATE_CHANGED注销它。

任何提示?

服务是一个上下文

服务扩展了扩展上下文的ContextWrapper。 因此,服务是一个上下文。 在服务中使用“this”关键字。

  1. 服务扩展了ContextWrapper
  2. ContextWrapper扩展了Context

所以….

 Context context = this; 

(服务或活动类别)

由于Service是一个Context ,variables上下文必须是this

 DataBaseManager dbm = Utils.getDataManager(this); 

YourServiceClass.this

 GPSTracker gpsTracker = new GPSTracker(TimeService.this);