сервис отображает точки на карте андроид - PullRequest
0 голосов
/ 14 октября 2010

В фоновом режиме работает служба Android, которая получает координаты от сервера каждые несколько секунд.Я не уверен, как отображать координаты на карте каждый раз, когда служба получает ответ от сервера.любезно помогите или дайте идею.

спасибо

Ответы [ 2 ]

1 голос
/ 15 октября 2010

Я не знаю учебных пособий по этому вопросу, но вот моя версия:

Чтобы отправить трансляцию, вы используете метод sendBroadcast (Intent i) класса Context. Класс Service расширяет Context, поэтому вы можете получить к нему доступ из своей реализации.

Так в твоей службе идет:

public static final String BROADCAST_ACTION="com.yourservice.update";

public void onStart( Intent intent, int startId ) {
...
Intent broadcastIntent = new Intent(BROADCAST_ACTION); 
   sendBroadcast(broadcastIntent);
...
}

Вы должны зарегистрировать получателя для этой трансляции в своей деятельности (возможно, до того, как вы начнете транслировать их), например:

private BroadcastReceiver receiver=new BroadcastReceiver() {
  public void onReceive(Context context, Intent intent) {

                        //Here goes handling the stuff you got from the service
   Bundle extras = intent.getExtras();
   if(extras != null)processUIUpdate(extras);
  }
};

public void onResume() {
...
//Register for the update broadcasts from the torrent service
registerReceiver(receiver, new IntentFilter(YourService.BROADCAST_ACTION));
...
}

Не забудьте отменить регистрацию, когда действие переходит в фоновый режим:

public void onPause() {
...
  //Deregister for the update broadcast from the torrent service
  unregisterReceiver(receiver);
...
}

Это должно работать.

1 голос
/ 15 октября 2010

Ваш сервис может передавать намерения всякий раз, когда он хочет обновить отображаемое местоположение на карте. Активность, отображающая карту, должна зарегистрировать получателя для этой boradcast, и намерение boradcast может содержать значения для lat. и долго.

...