Actualización de Textview en una actividad con servicio local
Tengo una Actividad con R.id.eventDistance y R.id.eventTime para mostrar la distancia y el tiempo de viaje basados en la ubicación actual. Calculo estos valores cada 30 segundos usando mi clase de servicio de ubicación.
Mi pregunta es: ¿cómo puedo actualizar TextView en la actividad? He intentado buscar la pregunta y encontré algunas soluciones posibles tales como usar BroadcastReceiver y llamar a TextView.setText () en el método onReceive (). No estoy seguro de cómo se hace esto. ¿Se supone que debo pasar en la clase de actividad como esta:
- El texto de TextView desaparece cuando se gira el dispositivo
- Clickable TextView en Android
- Alineación de la línea de base de dos vistas de texto en Android
- Multilínea TextView
- Cómo aumentar el espacio entre párrafos en una vista de texto
public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent i = new Intent(context, HomeActivity.class); } }
No estoy seguro de qué hacer después de eso. Cualquier ayuda es apreciada.
- ¿Cómo se utiliza EasyEditSpan en Android para permitir la edición parcial de texto?
- Android TextView no actualiza su texto cuando textIsSelectable está establecido en true
- Campo o etiqueta oculto en TextView?
- Single TextView con texto coloreado múltiple
- ¿Qué es (s / g) etFreezesText en TextView?
- Cómo leer el archivo de texto en android desde la web?
- Cómo se desvanecen borde de TextView en Android?
- TextView con diferentes fuentes y estilos?
2 Solutions collect form web for “Actualización de Textview en una actividad con servicio local”
Por favor vea este flujo.
1.en su clase LocationService cuando desee actualizar la interfaz de usuario. En su caso debe ser llamado cada 30 segundos.
Intent i = new Intent("LOCATION_UPDATED"); i.putExtra("<Key>","text"); sendBroadcast(i);
2.en su clase de UI (HomeActivity)
En onCreate ()
registerReceiver(uiUpdated, new IntentFilter("LOCATION_UPDATED"));
en la clase
private BroadcastReceiver uiUpdated= new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { TextView.setText(intent.getExtras().getString("<KEY>")) } };
En onDestroy ()
unregisterReceiver(uiUpdated);
Debe vincular su actividad a su servicio para que puedan comunicarse directamente y pasar el mensaje.
Árbitro
http://developer.android.com/guide/components/bound-services.html
- ¿Es seguro el método onStartCommand (…) de IntentService?
- Icono del menú que no se muestra en la barra de acción