是否有可靠的方法从服务中获取Context ?
我想为ACTION_PHONE_STATE_CHANGED注册一个广播接收器,但我不需要我的应用程序总是得到这个信息,所以我没有把它放在Manifest中。
然而,当我需要这些信息时,我不能让GC杀死广播接收器,所以我在服务中注册了广播接收器。
因此,我需要一个Context来调用registerReceiver()。 当我不再需要ACTION_PHONE_STATE_CHANGED时,我注销了它。
任何建议吗?
是否有可靠的方法从服务中获取Context ?
我想为ACTION_PHONE_STATE_CHANGED注册一个广播接收器,但我不需要我的应用程序总是得到这个信息,所以我没有把它放在Manifest中。
然而,当我需要这些信息时,我不能让GC杀死广播接收器,所以我在服务中注册了广播接收器。
因此,我需要一个Context来调用registerReceiver()。 当我不再需要ACTION_PHONE_STATE_CHANGED时,我注销了它。
任何建议吗?
当前回答
As服务本身就是一个上下文
你甚至可以通过:
Context mContext = this;
OR
Context mContext = [class name].this; //[] only specify the class name
// mContext = JobServiceSchedule.this;
其他回答
As服务本身就是一个上下文
你甚至可以通过:
Context mContext = this;
OR
Context mContext = [class name].this; //[] only specify the class name
// mContext = JobServiceSchedule.this;
Service扩展了ContextWrapper contexttwrapper扩展了Context
所以…
Context context = this;
(服务或活动类别)
服务是一个上下文
因为Service是一个Context,变量Context必须是这样的:
DataBaseManager dbm = Utils.getDataManager(this);
Service扩展了ContextWrapper,而ContextWrapper扩展了Context。因此,服务是一个上下文。 在服务中使用'this'关键字。