我的活动已使用registerReceiver()
注册了BroadcastReceiver。我希望在收到广播时更新一些UI。
在我的实验中,我发现上下文碰巧是我的活动(单一实例),
public void onReceive(Context context, Intent intent) {
Log.d(tag, context.getClass().getName());
}
但我不确定是否总是这样,因为文档不清楚 我可以将上下文参数转换为我的活动吗?
在BroadcastReceiver.onReceive
更改活动的最佳做法是什么?
答案 0 :(得分:2)
如果您想要更新UI,请将一个Receiver作为活动和广播操作的内部类。现在抓住onReceive()并更新活动。 您应该在使用结束后取消注册 和context始终是将广播注册为onReceive()的活动。如果您正在进行服务计算,则可以从服务发送广播以启动更新。