-
Gérer les interruptions
Bonjour,
J'ai lu pas mal de tutos anglais / français sur la gestion des interruptions (appels, batteries) mais je n'ai toujours pas compris comment les gérer de manière claire.
Je lance plusieurs Thread dans mon application, et j'aimerais les mettre en pause lors d'une interruption. Il s'agit bien de la méthode onPause()? Pas de onStop, onDestroy, onSaveInstanceState, etc?
Si je ne fais rien dans ce onPause, lors de l'interruption, mon thread continuera de tourner on est d'accord?
Merci pour ces petits éclaircissements.
-
En fait ma vrai question est celle-ci: après le onDestroy, les Thread lancés s'executent-il toujours?
Comment faire pour les arrêter (sans passer par des if stopped == false...)
Merci
-
Un thread est un thread...
En java, tant qu'un thread est en cours d’exécution, la machine virtuelle ne se finit pas (l'application n'est pas libérée). Exception pour les threads marqués comme "daemons".
Mais dans tous les cas, un arrêt du thread "manuel" est souhaitable...
Et dans ce cas, oui, il faut passer par un "if (!this.stopped) { ... "
Mais dan 90% des cas, un thread passe du temps à attendre... donc ne pas oublier de faire un "interrupt()" sur le thread quand on veut l'arrêter (en plus du 'this.stopped = true').
Apres, pour le reste, cela n'a plus grand chose à voir avec les threads....
onPause() est appelée *dès* que l'activité n'est plus affichée.
onDestroy() est appelée quand le système estime qu'elle doit être "relâchée"
Donc oui onPause() sera forcément appelé à la réception d'un appel (puisque l'application téléphonie prendra la main).