Android BroadcastReceiver.onReceive中的上下文是否始终是调用registerReceiver的活动?

Android BroadcastReceiver.onReceive中的上下文是否始终是调用registerReceiver的活动?,android,android-activity,broadcastreceiver,Android,Android Activity,Broadcastreceiver,“我的活动”已使用registerReceiver()注册了广播接收器。我想在收到广播时更新一些UI。 在我的实验中,我发现上下文恰好是我的活动(singleinstance) 但我不确定是否总是这样,因为文档对此并不清楚。 我可以将上下文参数强制转换为我的活动吗 在BroadcastReceiver.onReceive中更改活动的最佳做法是什么?如果要更新UI,请将一个接收器作为活动和广播操作的内部类。现在捕获onReceive()内部并更新活动。 您应该在使用结束后注销它 上下文始终是将广播

“我的活动”已使用
registerReceiver()
注册了广播接收器。我想在收到广播时更新一些UI。 在我的实验中,我发现上下文恰好是我的活动(singleinstance)

但我不确定是否总是这样,因为文档对此并不清楚。
我可以将上下文参数强制转换为我的活动吗


BroadcastReceiver.onReceive
中更改活动的最佳做法是什么?

如果要更新UI,请将一个接收器作为活动和广播操作的内部类。现在捕获onReceive()内部并更新活动。 您应该在使用结束后注销它
上下文始终是将广播注册为onReceive()的活动的上下文。如果您在服务中进行计算,您可以从服务发送广播以启动更新。

On receive仅在接收器中调用-您所说的“onReceive()甚至可以从服务中调用”?@Mr_and_Mrs_D最后一行出错。感谢您解决这个问题。我编辑了我的回答“将广播注册为onReceive()”?:我想要答案——只要有道理,我很乐意投赞成票。您的意思是,即使广播来自服务,上下文也始终是注册接收者的活动的上下文?在清单中注册的接收人(不是通过注册接收人)如何?请试着用英语清楚地表达自己(我不是英语头脑!)更新UI!=创建新活动。答案似乎不正确。@Sameer,现在没问题了。但对我来说,还不清楚是否可以使用外部(而不是内部类)BroadcastReceiver=)
public void onReceive(Context context, Intent intent) {
        Log.d(tag, context.getClass().getName());
}