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:
- Evitar que se rompa la palabra en TextView
- LineSpacingMultiplier y maxLines cortan la última línea, android textview
- Cambiar el texto de TextView
- Enfocar el siguiente texto automáticamente
- Html.fromHtml () está obsoleto, ¿cuál es la alternativa?
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.
- Espaciado de línea individual para cada línea
- ¿Puedo saber cuántos caracteres pueden caber en TextView de X anchura dp?
- ¿Cómo obtengo el color de fondo de un TextView?
- Single TextView con texto coloreado múltiple
- Obtener texto seleccionado de TextView
- Cómo colocar textview con x, y posición
- Cómo se desvanecen borde de TextView en Android?
- Configuración de un ancho de TextView en java
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