use*_*321 268 android broadcastreceiver android-service
有没有可靠的方法来获得Context一个Service?
我想注册广播接收器,ACTION_PHONE_STATE_CHANGED但我不需要我的应用程序总是得到这些信息,所以我不把它放在Manifest.
但是,当我需要这些信息时,我不能让GC杀死广播接收器,因此我正在注册广播接收器Service.
因此,我需要一个Context来打电话registerReceiver().当我不再需要时,ACTION_PHONE_STATE_CHANGED我取消注册它.
有小费吗?
mib*_*lma 751
Har*_*era 29
Service 扩展 ContextWrapperContextWrapper 扩展 Context所以....
Context context = this;
Run Code Online (Sandbox Code Playgroud)
(在服务或活动类中)
由于Service是a Context,变量上下文必须是this:
DataBaseManager dbm = Utils.getDataManager(this);
Run Code Online (Sandbox Code Playgroud)
以防万一有人得到NullPointerException,你需要得到里面的上下文onCreate().
Service是 a Context,所以这样做:
@Override
public void onCreate() {
super.onCreate();
context = this;
}
Run Code Online (Sandbox Code Playgroud)
因为Service本身已经是一个Context
你甚至可以通过:
Context mContext = this;
Run Code Online (Sandbox Code Playgroud)
或者
Context mContext = [class name].this; //[] only specify the class name
// mContext = JobServiceSchedule.this;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
124284 次 |
| 最近记录: |