J'ai question fondamentale en ce qui concerne le moment de unregisterListener
pour le gestionnaire de capteur. Faut-il faire en onStop()
ou onDestroy()
.Android: quand désenregistrer l'auditeur - onStop() ou OnDestroy()
USECASE:
Je veux enregistrer accelorometer
sur clic de bouton de démarrage et d'arrêt lorsque l'utilisateur clique le bouton d'arrêt. la fréquence des données est chaque minute. J'ai donc commencé un timer
.
Mais le problème est chaque fois que le orientation
change selon l'architecture Android, onStop()
est appelé. Dans onStop()
J'annule la minuterie et désinscrit l'auditeur. Donc, encore une fois, si je lance le timer/registre d'écoute à onResume()
, la fréquence ne restera pas 1 minute et les données seront enregistrées sans que l'utilisateur n'appuie sur le bouton de démarrage.
Quelqu'un peut-il me aider à résoudre ce problème.
Merci.
Je comprends Android La documentation de 'onDestroy' signifie que vous ne devriez pas * enregistrer * les données, car le processus peut être détruit avant d'être appelé. Cependant, dans cette situation, tout auditeur sera également enregistré dans le gestionnaire de capteurs. Quel est le mal dans tout ça? –
A noter également, 'onStop' est pas non plus garanti d'être appelé. –
onPause est le seul garanti. J'ai vu des instances où onStop n'est pas appelé, donc une nouvelle instance de fragment sera appelée onStart lors de la navigation vers l'application, et un écouteur est divulgué (sauf si vous enregistrez des écouteurs avec des balises string, et le nouveau fragment remplace l'ancien listener) – James