Comment puis-je détecter le bouton d'alimentation ou le bouton d'écran de verrouillage étant enfoncé? Quand mon jeu est en pause de cette façon, il peut causer un crash du jeu car je dois mettre un fil quand il se produit. P>
5 Réponses :
Utilisez le OnaAUSe code>
et Onresume code>
Méthodes. Celles-ci sont appelées lorsque votre application n'est plus au premier plan (lorsqu'un écran de verrouillage se présente) ou lorsque le téléphone est mis en veille, et lorsque votre application est ramenée au premier plan. P>
Ceci est le processus standard du cycle de vie d'activité dans Android, qui est plus entièrement documenté ici . p>
J'ai eu un sentiment que cela allait être de la façon de le faire. Le seul problème est en ce moment que j'utilise déjà ces méthodes pour tuer mes threads et ramener l'écran de jeu au menu lorsque l'utilisateur souhaite quitter le jeu ... Donc, cela doit être pourquoi le jeu se bloque complètement lorsque ce bouton est pressé ... Hmmm peut avoir à gérer les choses différemment.
Vous pouvez essayer de les déplacer vers OnStart code> et / ou
OnStop code> et voyez ce qui se passe. Il peut être nécessaire d'être plus tôt ou plus tard dans le cycle de vie pour éviter les problèmes de thread.
Merci, je vais essayer que, avoir plusieurs threads courants semble toujours avoir de la difficulté ... j'accepterais votre réponse, mais l'autre réponse ici semble répondre à la question que je demandais même si je me rendais compte que je devrais mettre en œuvre ma gestion de thread à l'aide de l'activité Android. Méthodes de cycle de vie différemment ...
de la réponse de Christian à Cette question : Cependant, Jake Basile a raison. Sauf si vous avez une raison probable de faire quelque chose de spécial lorsque vous appuyez sur le bouton d'alimentation, vous devez utiliser des fonctions standard de cycle de vie Android. P> Lorsque vous appuyez sur le bouton d'alimentation, il appelle la méthode Onpause () de votre application, et lorsque vous déverrouillez le périphérique, il appellera OnResume (). C'est ici que vous devriez gérer votre fil pour empêcher l'application de se bloquer. P> Le La documentation sur l'activité vous donnera une description détaillée des fonctions de cycle de vie, quand elles sont appelées et comment vous devriez les utiliser.
p> p>
Peux-tu être plus précis? Qu'est-ce que vous essayez de faire exactement?
À Kitkat, je viens de remarquer que cliquer sur le bouton d'alimentation appelle maintenant surtop () !!! C'est un gros changement, jamais l'habitude d'être comme ça.
Pour détecter si une application Android commence ou s'arrête, vous pouvez utiliser ces règles ( référence ): p>
@ Jean-François Fabre Avez-vous ressenti le lien que j'ai inclus n'était pas inutile? Il fournit les preuves de la réponse que j'ai donnée et plus de détails donc j'espérais que c'était utile.
Je l'ai supprimé car les liens à la fin des réponses (spécialement sur un blog) sont considérés comme des spams limites
Beaucoup de réponses à cette question ignorent le fait que lors de la rédaction d'une application, il est important de savoir quel événement a provoqué une fonction de cycle de vie androide standard en particulier. Il y a une fonction surbackprimé (); Pourquoi ne pas avoir un utile () et onhomeprimé () également? Les applications ont souvent besoin de faire différentes choses dans les fonctions de cycle de vie standard en fonction de l'événement qui les a provoquées. À l'heure actuelle, il s'agit d'une réelle douleur de déterminer si une méthode de cycle de vie standard a été appelée à la suite d'une touche à domicile ou d'un bouton d'alimentation Appuyez sur. P>
remplacer les méthodes de cycle de vie. La solution pour détecter le pressage du bouton d'alimentation choisie car la réponse n'est plus autorisée dans Android () P>
Les chances sont votre problème est mieux résolu en mettant en œuvre correctement le cycle de vie d'activité, en particulier en prenant les actions appropriées en réponse aux différents messages.
Vous ne devriez pas rechercher des presses de clé pour réparer votre application. Le cycle de vie Android est un bien meilleur choix et doit résoudre le problème de la pause de votre jeu lorsque l'utilisateur se ferme ou la met en pause. Avez-vous essayé de remplacer
onpaause code> dans l'activité
code>?
Je l'ai fait, mais je pense que je manipule mal mes discussions pour le moment. Je vais devoir retourner et peut-être essayer de les gérer dans différentes méthodes, puis écrivez le code de gestion du problème de verrouillage dans la méthode de l'onpause