我有一个DashClockExtension
有时不更新。
它使用 LocalBroadcastReceiver 来更新类似于http://bit.ly/1e4uMl0的扩展。接收者在onInitialize()
方法中注册:
@Override
protected void onInitialize(boolean isReconnect) {
super.onInitialize(isReconnect);
LocalBroadcastManager broadcastMgr = LocalBroadcastManager.getInstance(this);
if (mDashClockReceiver != null) {
try {
broadcastMgr.unregisterReceiver(mDashClockReceiver);
} catch (Exception ignore) {}
}
mDashClockReceiver = new DashClockUpdateReceiver();
broadcastMgr.registerReceiver(mDashClockReceiver, new IntentFilter(UPDATE_DASHCLOCK));
}
这就是我发送广播的方式:
public static void updateDashClock() {
LocalBroadcastManager.getInstance(Application.getContext()).sendBroadcast(new Intent(UPDATE_DASHCLOCK));
}
那是我的广播接收器:
private class DashClockUpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
retrieveDataAndUpdateWidget();
}
}
我注意到,当广播被触发时,接收器有时不会收到事件。
我通过杀死我的应用程序对其进行了测试,但这并没有重现问题,所以我不知道为什么会发生这种情况。
任何人?