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:
- Cómo se desvanecen borde de TextView en Android?
- Espaciado de línea individual para cada línea
- El texto de TextView desaparece cuando se gira el dispositivo
- ¿Cómo obtengo el color de fondo de un TextView?
- Convertir píxeles en sp
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.
- Android - Configuración de TextView a negrita no funciona
- La marquesina de TextView no funciona
- Cómo configurar mulitple clic evento para la única textview?
- Spannable Vs Tipo Vs Html
- Android dibujar círculo alrededor de texto
- Cómo actualizar un TextView mientras se realiza un bucle en Android?
- Cómo aumentar el espacio entre párrafos en una vista de texto
- ¿Cómo hago el centro vertical de dos puntos en TextView
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