Je n'arrive pas à comprendre quand surfaceDestroyed()
se produit. J'essaie de faire en sorte que mes threads s'arrêtent de fonctionner dans la méthode surfaceDestroyed()
(d'un SurfaceView) mais il semble que ma surface n'est jamais réellement détruite ... quelqu'un peut-il me dire quand cela se produit? Ou comment le déclencher?Quand est-ce que surfaceDestroyed() se produit?
10
A
Répondre
18
Chaque fois que vous cliquez sur le bouton de retour ou à la maison et de laisser l'activité que vous obtenez:
Activité OnPause
surfaceDestroyed
et enfin l'activité onDestroyed. Lorsque vous revenez, la surface est recréée, mais si vous avez utilisé des variables statiques pour piloter l'application, elles seront souvent conservées et il semblera que surfaceView n'ait pas été détruit.
En ce qui concerne la fermeture du fil, vérifier: Android crash when app is closed and reopened
2
surfaceDestroyed()
n'est pas appelé lorsque la vue est gérée par un TabHost
.
Questions connexes
- 1. Quand est-ce que ERROR se produit en Java?
- 2. Quand l'exécution différée se produit-elle?
- 3. Quand l'authentification ASP.NET se produit-elle?
- 4. variable capture quand exception se produit
- 5. Quand exactement l'effacement de type se produit?
- 6. Rails TemplateMissing quand exception se produit
- 7. Que se connecter lorsqu'une exception se produit?
- 8. ItemClickListener démarre alors que ItemLongClickListener se produit
- 9. Quand l'initialisation de classe statique se produit-elle?
- 10. Transaction Processing: Quand une annulation se produit-elle?
- 11. voir la pile quand un accident se produit
- 12. Julia: comprendre quand le changement de tâche se produit
- 13. Meilleure façon de vérifier quand une date spécifiée se produit
- 14. Comment arrêter le swf quand une erreur se produit
- 15. Quand DataBinding se produit-il pour les listes déroulantes?
- 16. Quand la condition "code inaccessible" se produit-elle en Java?
- 17. getNodeValue() tronque la valeur quand apostrophe se produit
- 18. Swift addsubview et crash d'application quand IBAction se produit
- 19. Envoyer un email quand une erreur se produit dans CakePHP
- 20. Où/quand la non-correspondance d'impédance d'objet se produit-elle?
- 21. Quand un événement de chargement d'un navigateur se produit-il?
- 22. Quand et pourquoi ne pas implémenté (java.lang.reflect.InvocationTargetException) se produit?
- 23. Que se passe-t-il lorsqu'une erreur SOAP se produit?
- 24. Quand est-ce que onCreateOptionsMenu se produit dans une activité activée par ActionBar?
- 25. Déterminez quand le toucher se produit et quand il est libéré
- 26. : sélecteur actif ne se produit que sur un clic
- 27. min se produit vs groupe min se produit
- 28. erreur se produit, alors que l'installation magento sur win7
- 29. Sys.WebForms.PageRequestManagerParserErrorException ne se produit que pour deux revendeurs (Internet Explorer)
- 30. ASP.NET comment se connecter l'URL de demande quand l'exception se produit?
Vous voyez, je pensais que c'était à chaque fois que vous reveniez. Cependant, j'essaie d'arrêter mes threads dans la méthode SurfaceDestroyed ..... mais ils continuent à fonctionner @. @ –
Vous ne pouvez pas facilement arrêter les threads, arrêtez simplement la boucle dedans puis utilisez JOIN pour qu'ils finissent seuls et " rejoindre "le fil principal de l'interface utilisateur, puis vous pouvez fermer le fil de l'interface utilisateur correctement. Voir la méthode surfaceDestroyed dans le code de la question du lien que j'ai fourni. – Lumis