Как опубликовать обновление для Dashclock, когда мое приложение получает намерение?

Я добавил близость местоположения позже, используя Android addProximityAlert метод в LocationManager учебный класс.

Когда телефон пользователя находится в определенной области, 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));               
    }

}

Я хотел бы использовать DashClock API, чтобы показать обновление, когда это произойдет. DashClock имеет publishUpdate метод, который можно использовать для отображения обновлений, но я могу использовать его только из моего класса расширения, который расширяет DashClock учебный класс. Это должно быть как-то возможно, но я не могу понять, как. Любые идеи о том, как я мог бы сделать это?

1 ответ

Решение

Поскольку служба добавочного номера должна выполнить вызов publishUpdate, ваш приемник широковещательного триггера должен использовать что-то вроде широковещательной передачи или шины событий, чтобы попросить расширение опубликовать обновление.

Если расширение не инициализировано, то есть пользователь не добавил его или DashClock не запущен, ничего не произойдет, что является ожидаемым и правильным поведением. Как только DashClock запустится и ваше расширение будет добавлено, будет вызвана onUpdateData, и вы сможете опубликовать свое обновление.

Некоторые идеи о реальных классах, которые вы можете использовать, см. Ниже:

  • Глобальные трансляции, используя Context.sendBroadcast вместе с динамически зарегистрированным радиовещательным приемником в вашем DashClockExtension используя Context.registerReceiver.

  • Локальные трансляции, используя LocalBroadcastManager.

  • Otto или EventBus, две платформы, которые позволяют компонентам приложения публиковать и подписываться на события. В этом случае добавочный номер подписывается, а ваш датчик приближения публикуется.

Полный фрагмент кода для глобальных трансляций можно найти в выпуске 292 на странице проекта DashClock.

Другие вопросы по тегам