Android - 从Broadcast Receiver的onReceive()中获取Context以发送

86

我基本上想从我的BroadcastReceiver的onReceive()方法中创建一个Intent并将其传递给一个服务。

到目前为止,我总是使用View.getContext(),但是在这里,我卡住了。我该如何获取上下文才能使用public Intent (Context packageContext, Class<?> cls)

3个回答

318
public abstract void onReceive(Context context, Intent intent)

onReceive 提供了上下文。你还想要什么?


18
哦,严肃地说,直到我看到这个才发现。 - Blasanka
这个不行。我正在尝试从一个服务中调用广播,而我想要获取的上下文是一个 MyService 对象,但是 context 参数却是一个 ReceiverRestrictedContext 对象。 - Donald Duck

2
上面提到的答案没有任何用处。只有在onReceive中,您才能使用上下文。一旦您的代码从onReceive返回,上下文就不存在了。
因此,您的问题陈述说您想使用此上下文在意图创建中启动服务,然后使用此上下文对象调用startService。这是不可能的。
请阅读BroadcastReceiver上下文中可以和不能做什么。

http://developer.android.com/reference/android/content/BroadcastReceiver.html


你说的不是真的。你可以从BroadcastReceivers启动服务,但不能绑定它们。 - Bardya Momeni

1
在 BroadcastReceiver 中,

onReceive(Context context, Intent intent)

该文本为英语,翻译如下:

方法提供上下文

因此

要启动活动,请使用

context.startActivity(intent);

并且要启动服务,请使用

context.startService(intent);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接