我有一个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));
}
Run Code Online (Sandbox Code Playgroud)
这就是我发送广播的方式:
public static void updateDashClock() {
LocalBroadcastManager.getInstance(Application.getContext()).sendBroadcast(new Intent(UPDATE_DASHCLOCK));
}
Run Code Online (Sandbox Code Playgroud)
这是我的BroadcastReceiver:
private class DashClockUpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
retrieveDataAndUpdateWidget();
}
}
Run Code Online (Sandbox Code Playgroud)
我注意到,当广播被触发时,接收器有时不会收到该事件.
我通过杀死我的应用程序来测试它,但这不会重现问题,所以我不知道为什么会发生这种情况.
任何人?
我之后addProximityAlert在LocationManager课堂上使用Android的方法添加了位置接近度.
当用户的手机是特定区域时,会LocationManager向Intent我的应用程序发送一个BroadcastReciver,这里是处理意图的类:
public class ProximityTrigger extends BroadcastReceiver {
@Override
public void onReceive(Context ctxContext, Intent ittIntent) {
System.out.println(ittIntent.getIntExtra(WidgetService.KEY_STOP_IDENTIFIER, -1));
}
}
Run Code Online (Sandbox Code Playgroud)
我想在发生这种情况时使用DashClock API来显示更新.DashClock有一个publishUpdate可用于显示更新的方法,但我只能在扩展类的扩展类中使用它DashClock.这应该是某种可能的,但我似乎无法弄清楚如何.关于如何实现这一目标的任何想法?