我有一个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)); }
这是我的BroadcastReceiver:
private class DashClockUpdateReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { retrieveDataAndUpdateWidget(); } }
我注意到,当广播被触发时,接收器有时不会收到该事件.
我通过杀死我的应用程序来测试它,但这不会重现问题,所以我不知道为什么会发生这种情况.
任何人?