Обновление текстового представления в активности с локальной службой

У меня есть Activity с R.id.eventDistance и R.id.eventTime, чтобы отображать расстояние и время в пути на основе текущего местоположения. Я вычисляю эти значения каждые 30 секунд, используя класс Location Service.

Мой вопрос: как обновить TextView в Activity? Я попытался найти вопрос и нашел некоторые возможные решения, такие как использование BroadcastReceiver и вызов TextView.setText () в методе onReceive (). Я не уверен, как это делается. Я должен пройти в классе Activity следующим образом:

public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent i = new Intent(context, HomeActivity.class); } } 

Я не уверен, что делать после этого. Любая помощь приветствуется.

См. Этот поток.

1. в вашем классе LocationService, когда вы хотите обновить интерфейс. В вашем случае его следует вызывать каждые 30 секунд.

 Intent i = new Intent("LOCATION_UPDATED"); i.putExtra("<Key>","text"); sendBroadcast(i); 

2.В вашем классе пользовательского интерфейса (HomeActivity)

In onCreate ()

 registerReceiver(uiUpdated, new IntentFilter("LOCATION_UPDATED")); 

в классе

 private BroadcastReceiver uiUpdated= new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { TextView.setText(intent.getExtras().getString("<KEY>")) } }; 

В onDestroy ()

 unregisterReceiver(uiUpdated); 

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

ссылка

http://developer.android.com/guide/components/bound-services.html