0

Я следил за этим tutorial и теперь у меня есть работа с фрагментом карты google.android - google maps v2 - продолжать обновлять местоположение из службы

мне нужно следить на местоположении пользователей моего приложения в - фрагмент имеет onLocationChanged метод, который срабатывает при расположение изменяется, и на этом метод я обновляю Мою базы данных с местоположением пользователя, привлечь пользователь на карты и многое другое.

Единственная проблема - я хочу также сервис, который всегда будет отправлять обновления в свою базу данных и обновлять местоположение каждого пользователя, а также, когда приложение закрыто.

Должен ли я поместить метод onLocationChanged как в фрагмент, так и в сервис? потому что, когда приложение находится на переднем плане, я также делать больше вещей на onLocationChanged рядом обновления базы данных, как рисование карты и т.д.

ответ

0

Почему не просто ваш сервис получать все обновления местоположения, и использовать LocalBroadcastManager вещать намерения с обновлением местоположения на любой фрагмент или активность, которая регистрирует внутренний BroadcastReceiver с фильтром намерения? Вот tutorial о том, как использовать LocalBroadcastManager. Кроме того, вот пример того, как я сделал свой внутренний BroadcastReceivers:

static class InternalBroadCastReceiver extends BroadcastReceiver{ 

    MyFragment mMyFragment; 

    public InternalBroadCastReceiver(MyFragment fragment){ 
     mMyFragment = fragment; 
    } 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     final MyFragment fragment = mMyFragment; 

     if (fragment != null) { 
      Location location = intent.getParcelableExtra("myLocation"); 

      //... Do something with your location here, for example: 
      fragment.updatemap(location); 
     } 
    } 
} 
Смежные вопросы