Tengo una pregunta básica con respecto a cuándo unregisterListener
para el administrador del sensor. Debería hacerse en onStop()
o onDestroy()
.Android: cuándo anular el registro del oyente - onStop() o onDestroy()
USECASE:
Quiero grabar accelorometer
al hacer clic con el botón de arranque y parada cuando el usuario hace clic botón de parada. la frecuencia de los datos es cada minuto. Entonces comencé un timer
.
Pero el problema es que cada vez que orientation
cambia según la arquitectura de Android, se llama onStop()
. En onStop()
estoy cancelando el temporizador y anulando el registro del oyente.
SO otra vez si comienzo el escucha de temporizador/registro en onResume()
la frecuencia no se mantendrá 1 minuto y también los datos se grabarán sin que el usuario presione el botón de inicio.
¿Alguien me puede ayudar a resolver este problema.
Gracias.
entiendo el Android la documentación para 'onDestroy' significa que no debe * guardar * datos allí, ya que el proceso se puede matar antes de que se llame. Sin embargo, en esa situación, también lo harán los oyentes registrados en el administrador del sensor. ¿Cuál es el daño en esto? –
También debe tenerse en cuenta que 'onStop' tampoco se garantiza que se invoque. –
onPause es el único garantizado. He visto instancias en las que no se llama a OnStop, por lo que cuando vuelva a la aplicación una nueva instancia de fragmento tendrá activado OnStart y se filtró un oyente (a menos que registre oyentes utilizando etiquetas de cadena y el nuevo fragmento reemplaza al oyente anterior) – James