Он использует LocalBroadcastReceiver для обновления расширения, аналогичного https://code.google.com/archive/p/dashclock. Получатель регистрируется в методе 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();
}
}
Я проверил это, уничтожив свое приложение, но это не воспроизводит проблему, поэтому я не понимаю, почему это происходит.
Кто-нибудь?>
Подробнее здесь: https://stackoverflow.com/questions/205 ... t-updating
Мобильная версия