BroadcastReceiver.onReceive中的上下文总是调用registerReceiver的活动吗?

时间:2011-10-06 21:55:53

标签: android android-activity broadcastreceiver

我的活动已使用registerReceiver()注册了BroadcastReceiver。我希望在收到广播时更新一些UI。 在我的实验中,我发现上下文碰巧是我的活动(单一实例),

public void onReceive(Context context, Intent intent) {
        Log.d(tag, context.getClass().getName());
}

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

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

1 个答案:

答案 0 :(得分:2)

如果您想要更新UI,请将一个Receiver作为活动和广播操作的内部类。现在抓住onReceive()并更新活动。 您应该在使用结束后取消注册 和context始终是将广播注册为onReceive()的活动。如果您正在进行服务计算,则可以从服务发送广播以启动更新。