¿Existe la posibilidad de enviar un parámetro entre dos actividades en un intervalo de tiempo?

Quiero pasar un parámetro entre dos actividades en un intervalo de tiempo determinado. El parámetro pasado es un int, que representa el número de satélites vistos por el dispositivo y se usa para dibujar un gráfico en la segunda actividad.

preguntado el 08 de noviembre de 11 a las 14:11

4 Respuestas

No hay nada de malo en mantener un oyente de estado de Gps en ambas actividades, siempre que detenga el GPS correctamente cuando no sea necesario. :)


Pero de todos modos, si yo fuera usted, dejaría que la clase de Aplicación se aferre a estos detalles. Usaría un servicio para escuchar el GpsStatus y la clase de aplicación se vincula a este servicio. Su clase de aplicación es ahora la puerta de enlace. Sus actividades ahora pueden comunicarse sin problemas con los datos de la aplicación, en lugar de los torpes Intents.

Este patrón se toma de aquí

contestado el 23 de mayo de 17 a las 14:05

Tenga cuidado con este enfoque. Si el oyente de GPS está activo mientras no hay actividad activa, está desperdiciando la vida de la batería y el usuario lo notará a través del icono de GPS en la barra de estado. - Janusz

Si la aplicación está muerta, tenemos un código para eliminar los oyentes muertos en el marco de ubicación. El icono de GPS solo aparece cuando se realiza una solicitud de ubicación. Esta solicitud no se puede realizar desde la clase GpsStatus; es solo un observador. (El demonio GPS se ejecuta cuando el GPS está habilitado. El agotamiento real de la batería ocurre cuando comienza a buscar satélites. Son dos estados diferentes) - Reno

Puedes usar un preferencia compartida para almacenar el int en una especie de variable a la que puedan acceder ambas actividades.

De lo contrario, intente un intención personalizada e implementar un receptor en una o ambas Actividades. Esto es un pequeño más difícil de implementar, pero con el receptor puede actuar tan pronto como cambie el valor.

Si es bastante importante hacerlo en el intervalo de tiempo, use una preferencia compartida ;-)

respondido 08 nov., 11:18

Es muy probable que estés intentando hacer algo de una manera extraña porque aún no comprendes completamente cómo funcionan las actividades en Android.

Solo hay una actividad activa en toda su aplicación. El envío de datos de una actividad a otra solo es necesario si los usuarios cambian la Actividad activa, ya sea haciendo clic en un botón y cambiando a una nueva Actividad o haciendo clic en atrás y volviendo a la Actividad anterior. Por favor lea el Ciclo de vida de la actividad con mucho cuidado para comprender cómo se deben utilizar las actividades.

Supongo que ha registrado un detector de ubicación en una actividad e intenta utilizar los valores de este detector en otras actividades. Normalmente usarías el onPause método para desactivar el oyente en la primera actividad y luego activar uno nuevo en la nueva actividad. Esto le dará la cantidad de satélites conocidos en cada actividad. Si el usuario vuelve, tendrá que volver a registrar el oyente en el En resumen método para volver a habilitar las actualizaciones de gps para la nueva actividad.

Mantener un oyente de GPS activo en una actividad pausada conducirá a un sensor de GPS activo incluso si su aplicación está en segundo plano y ya no se usa. Esto agotará la batería del teléfono muy rápido y es muy probable que se desinstale la aplicación en una instancia.

respondido 08 nov., 11:18

También puede pasar paquetes entre dos actividades. Ese intento se puede utilizar para almacenar valores de parámetros en PutIntent.

Más información aquí: http://remwebdevelopment.com/dev/a33/Passing-Bundles-Around-Activities.html

respondido 09 nov., 11:17

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.