En utilisant le setOnKeyListener je peux capable d'écouter tous les boutons physiques sauf bouton Home et End, est-il possible d'attraper l'action du bouton Home.Accueil écouteur de bouton
Répondre
Vous n'avez pas besoin d'appuyer sur le bouton Accueil. Si l'utilisateur appuie sur Accueil et qu'une autre activité arrive au premier plan, votre application passe en arrière-plan et onPause()
est appelée dans votre activité actuelle. Vous pouvez remplacer cette fonction pour nettoyer la chaîne de recherche ou tout ce dont vous avez besoin.
MISE À JOUR:
solution plus propre est d'utiliser FLAG_ACTIVITY_NO_HISTORY drapeau lors du démarrage que l'activité critique. Ainsi, lorsque votre activité passe en arrière-plan, le système la ferme correctement pour vous.
Salut Zelimir, j'ai appelé la fonction finish() dans la fonction onStop(), donc ça marche mais ça montre Désolé l'application s'est arrêtée de façon inattendue. – Vignesh
La première ligne doit être super.onPause(); et alors vous pouvez appeler finish(). Si cela ne vous aide pas, postez la première ligne du rapport d'erreurs contenant des informations utiles. – Zelimir
Salut Zelimir, finish() dans onPause() termine l'activité pendant le changement d'orientation, donc je l'ai donné à l'intérieur de onStop() et je suis désolé que l'application soit fermée de manière inattendue. – Vignesh
Vous souhaitez utiliser public boolean dispatchKeyEvent(KeyEvent event)
, comme indiqué ici: http://developer.android.com/reference/android/app/Activity.html#dispatchKeyEvent%28android.view.KeyEvent%29.
Utilisez comme si:
@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
// do whatever you want to do here, then return true if you handled the key code
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_BACK:
mBackDown = true;
return true;
case KeyEvent.KEYCODE_HOME:
mHomeDown = true;
return true;
}
}
return super.dispatchKeyEvent(event); // let the default handling take care of it
}
Laissez-moi savoir si cela fonctionne pour vous.
EDIT: je ne sais pas pourquoi cela ne fonctionne pas pour vous, mais sans regarder à travers le reste de votre code, il serait difficile de dire exactement ce qui se passe. Toutefois, pour votre tâche, ce que je recommanderais, c'est que vous utilisiez l'attribut finishOnTaskLaunch
manifest, comme décrit à http://developer.android.com/guide/topics/manifest/activity-element.html#finish: correctement utilisé (réglez-le sur true) cela vous assurera que si votre activité est relancée, elle arrêtera toute instance existante .
Bonjour Femi, il ne fonctionne toujours pas pour les boutons Home, End et Power. – Vignesh
Odd: ça marche pour moi, au moins avec les boutons Home et Back. Je ne suis pas sûr du bouton END: je ne sais pas s'il existe un bouton physique pour END. En outre, pour HOME, vous devrez peut-être faire de votre activité un écran d'accueil (sinon je crois que Android filtre cette touche). Et je ne crois pas que vous pouvez piéger le bouton POWER: ce serait un problème de sécurité majeur à mon avis: quelqu'un pourrait écrire quelque chose qui a refusé de vous laisser éteindre votre appareil. Donc, vous pourriez ne pas avoir de chance sur le bouton d'alimentation. – Femi
Salut Femi, je n'ai pas besoin d'écouter le bouton Fin ou le bouton d'alimentation, je veux seulement écouter le bouton Home, je vous informe juste que l'écouteur pour Home, End et Power ne fonctionne pas. – Vignesh
Ceci n'est possible que si vous modifiez le code source android principal. Bien que ce n'est pas recommandé pour les applications. Mais plus orienté vers les menus cachés.
public static final int KEYCODE_HOME
Since: API Level 1
Key code constant: Home key. This key is handled by the framework and is never delivered to applications.
Constant Value: 3 (0x00000003)
Vous pouvez essayer sur Android 4.0+:
1. Inscrivez-vous un BroadcastReceiver pour Intent.ACTION_CLOSE_SYSTEM_DIALOGS.
2. Appelez Intent.getStringExtra ("raison") pour obtenir la raison. Les raisons sont ci-dessous:
"clé d'accueil" pour la touche d'accueil enfoncée;
"assistance" pour la touche d'accueil à long appui;
- 1. Bouton Accueil dans Android?
- 2. Bouton Accueil IPhone SDK
- 3. Écouteur de bouton SmartGWT
- 4. Android Accueil bouton Appui long
- 5. Le bouton Accueil minimise l'application
- 6. Handling bouton Accueil dans Android?
- 7. Désactiver bouton Accueil dans Android 4.0+
- 8. onStop n'est pas appelé ... Bouton Accueil appuyé
- 9. android progressbar sur clic Accueil/Retour bouton
- 10. Bouton Accueil disparaissant sur la page php
- 11. App ignorer le bouton Accueil Appuyez sur
- 12. Action Bar Accueil Logo/Bouton/Icône
- 13. Android Accueil Bouton Cliquez sur bloque l'application
- 14. Désactiver Retour Accueil bouton Android 3.1
- 15. Comment contrôler le flux d'activité - bouton Retour bouton Accueil contre
- 16. Iphone désactiver le bouton écouteur
- 17. Eclipse vue de progression bouton d'arrêt écouteur
- 18. vue de progression bouton d'arrêt écouteur
- 19. bouton Accueil sur la barre de navigation ne fonctionne pas
- 20. android bouton écouteur d'événements ne fonctionne pas
- 21. android- multi onClick écouteur dans un bouton
- 22. bouton Accueil Android ne reprend pas la dernière activité
- 23. Android Accueil bouton cliquez sur ignorant l'état enregistré?
- 24. Comment terminer() une activité lorsque le bouton Accueil est enfoncé
- 25. Joueur obtenant nul après le bouton Accueil pressé
- 26. Comment tuer une activité lorsque le bouton Accueil est enfoncé?
- 27. Comment faire pour gérer Bouton Accueil Dans Android
- 28. Surpasser le bouton Accueil - comment se débarrasser du choix?
- 29. Programme d'écoute onClick d'Action Bar pour le bouton Accueil
- 30. Appuyez sur le bouton Accueil pour arrêter le service
Je suis sûr que vous ne pouvez pas remplacer Home. Pourquoi voudriez-vous? –
Dans mon application, je lis des fichiers importants qui ne devraient pas être accessibles par une tierce personne, Si je quitte correctement l'application, ce n'est pas possible, mais lorsque l'utilisateur appuie sur Accueil de cette activité, il est possible d'ouvrir cette activité pour recherche. – Vignesh
L'approche avec le bouton Accueil attractif n'est pas valide. Vous devez suivre le cycle de vie de l'activité et voir ce qui se passe lorsque l'utilisateur appuie sur le bouton Accueil. – Zelimir