Android - 从广播接收器 onReceive() 获取上下文以发送到
Posted
技术标签:
【中文标题】Android - 从广播接收器 onReceive() 获取上下文以发送到【英文标题】:Android - Getting context from a Broadcast receiver onReceive() to send to 【发布时间】:2011-05-06 05:08:12 【问题描述】:我基本上想制定一个意图并将其从我的 BroadcastReceiver 的 onReceive() 传递给服务。
到目前为止,我一直使用 View.getContext(),但在这里,我被卡住了。
我怎样才能获得上下文以便我可以使用public Intent (Context packageContext, Class<?> cls)
?
【问题讨论】:
【参考方案1】:public abstract void onReceive(Context context, Intent intent)
onReceive
为您提供上下文。你还想要什么?
【讨论】:
哦,说真的,我直到看到这个才看到它。 这不起作用。我正在尝试从服务调用广播,而我想要获取的上下文是MyService
对象,但 context
参数是 ReceiverRestrictedContext
对象。【参考方案2】:
好吧,上面提到的答案没有任何用处。只要您在 onReceive 中,就可以使用上下文。一旦你的代码从 onReceive 返回,上下文就不再存在了。
所以你的问题陈述说你想在你的意图创建中使用这个上下文启动服务,然后用这个上下文对象调用 startService。那是做不到的。
阅读此内容在 BroadcastReceiver 上下文中可以做什么和不可以做什么。
http://developer.android.com/reference/android/content/BroadcastReceiver.html
【讨论】:
你说的不是真的。您可以从 BroadcastReceivers 启动服务,但不能绑定到它们。【参考方案3】:在BroadcastReceiver中
onReceive(Context context, Intent intent)
方法提供上下文
所以
开始活动使用
context.startActivity(intent);
并开始使用服务
context.startService(intent);
【讨论】:
以上是关于Android - 从广播接收器 onReceive() 获取上下文以发送到的主要内容,如果未能解决你的问题,请参考以下文章
Android 编程 - 如何从广播接收器播放 SoundPool 声音?