280 有没有任何可靠的方式来获得Context从Service? 我想为其注册一个广播接收器,ACTION_PHONE_STATE_CHANGED但是我不需要我的应用程序始终获取此信息,因此我不必将其放在中Manifest。 但是,当我需要此信息时,我无法让广播接收器被GC杀死,因此我要将广播接收器注册到中Service。 因此,我需要Context致电registerReceiver()。当我不再需要时,ACTION_PHONE_STATE_CHANGED我将其注销。 有小费吗? android broadcastreceiver android-service — 用户名 source
780 服务是上下文 — Mibollma source 3 我遇到了这个问题,但事实证明,它是没有上下文的工作线程。我在构造线程时通过传递上下文解决了该问题。 — ctrl-alt-delor 17 注意:服务中的上下文直到服务中的onStart或onStartCommand才可见:stackoverflow.com/questions/7619917/…– — 类 36 这可能是在stackoverflow中投票最高的最短答案 — Sayka 4 考虑到答案的大小和收到的支持,我认为SO中没有其他答案能胜过这个了:) — Amruta-Pani 2 这4个字解决了我已经尝试解决3个小时的问题。 — Nirup Iyer
31 Service 延伸 ContextWrapper ContextWrapper 延伸 Context 所以.... Context context = this; (在服务或活动类别中) — 哈迪克·加耶拉 source
5 由于服务本身已经是上下文 您甚至可以通过以下方式获得它: Context mContext = this; 要么 Context mContext = [class name].this; //[] only specify the class name // mContext = JobServiceSchedule.this; — 阿里·阿扎兹·阿拉姆 source
1 以防万一有人得到NullPointerException,您需要获取上下文onCreate(). Service是Context,因此请执行以下操作: @Override public void onCreate() { super.onCreate(); context = this; } — 传道熊猫 source