Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1659 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Processus de "Timeout"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Processus de "Timeout"

n°2223061
psychodark​squall
VégétAryen
Posté le 25-03-2014 à 11:11:58  profilanswer
 

Bonjour à tous,
 
Je travaille actuellement sur une appli mobile en mode "web app", du coup je la développe en HTML/Javascript et j'utilise Cordova (anciennement PhoneGap) pour générer automatiquement les besoins en Java et assurer le lien avec mon dév en Javascript.
 
Je ne suis pas censé toucher au Java, mais l'application gagnant en fonctionnalités et Cordova n'étant pas exhaustif, je me retrouve dans l'obligation de m'y mettre un peu.
 
Mon cas concerne le besoin de détecter une triple pression du bouton de volume +. J'ai réussi à la détecter, mais je souhaiterais mettre un genre de timeout pour que cette triple pression doive se faire dans un laps de temps imparti (par exemple cinq secondes).
 
Voici mon code :

Code :
  1. public class MonAppli extends CordovaActivity {
  2. @Override
  3. public void onCreate(Bundle savedInstanceState) {
  4.  super.onCreate(savedInstanceState);
  5.  super.init();
  6.  // Set by <content src="index.html" /> in config.xml
  7.  super.loadUrl(Config.getStartUrl());
  8.  // super.loadUrl("file:///android_asset/www/index.html" )
  9.  // getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  10. }
  11. // Détecter la pression du bouton volume +
  12. int i = 0;
  13. @Override
  14. public boolean onKeyUp(int keyCode, KeyEvent event) {
  15.  if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP)
  16.    & (event.getAction() == KeyEvent.ACTION_UP)) {
  17.   i++;
  18.   if (i == 3) {
  19.    this.loadUrl("javascript:cordova.fireDocumentEvent('volumeupbutton');" );
  20.    i = 0;
  21.   }
  22.   return true;
  23.  }
  24.  return true;
  25. }
  26. // Empêcher le comportement normal des boutons de volume
  27. @Override
  28. public boolean onKeyDown(int keyCode, KeyEvent event) {
  29.  return true;
  30. }
  31. }


 
Je ne vois pas trop comment procéder, en fait je ne vois pas comment intégrer un timeout dans le code mais qui ne bloquerait pas la procédure. Par exemple je pensais dire que, dès que i == 1, je le remets à 0 après cinq secondes, mais sans pour autant empêcher qu'il puisse valoir 2 puis 3.
 
Merci.


Message édité par psychodarksquall le 25-03-2014 à 11:15:02
mood
Publicité
Posté le 25-03-2014 à 11:11:58  profilanswer
 

n°2223070
willy le k​id
Posté le 25-03-2014 à 12:28:24  profilanswer
 

Tu maintiens un tableau 'dates' de 3 valeurs DateTime.
Tu complètes le tableau en fonction des pressions (ajout/remplace).
tu veux dates[2] - dates[0] < 5 000 ms

n°2223076
psychodark​squall
VégétAryen
Posté le 25-03-2014 à 13:54:51  profilanswer
 

Ah ouais pas bête, j'avais pas pensé à faire comme ça. Merci.
 
EDIT : ta méthode des dates fonctionne, seulement j'ai un nouveau problème, c'est que s'il appuie une fois dessus, qu'il attend dix secondes par exemple, et qu'ensuite il appuie trois fois dessus rapidement, ça ne fonctionnera pas, parce que i vaudra déjà 1 au lieu de 0, et au lieu de faire "1 - 2 - 3" il fera "2 - 3 - 1" :o
 
Du coup je peux pas me contenter de vérifier la différence de dates quand i vaut 3, mais je dois le faire à chaque fois, et le réinitialiser s'il y a une une trop grosse différence entre deux pressions.


Message édité par psychodarksquall le 25-03-2014 à 14:53:15
n°2223095
willy le k​id
Posté le 25-03-2014 à 15:57:18  profilanswer
 

C'est ce que je voulais dire par Tu complètes le tableau en fonction des pressions (ajout/remplace)
Les algos tout fait ne tombent jamais du ciel... j'ai réfléchi 40 secondes à ton problème


Message édité par willy le kid le 25-03-2014 à 16:16:48

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Processus de "Timeout"

 

Sujets relatifs
processus / minishell[Perl] Utilisation correcte de timeout_call
attendre fin d'un processus[Résolu] [Oracle] Conflit de processus d'ecoute
[VBA] Callback / Timeout[Résolu] Quote Execute + Find pour le listing de fichier
Lancer processus sous conditionPERL - Communication processus pere/fils
Gestion d'un processus avec timeout[C] Timeout dans un processus ?
Plus de sujets relatifs à : Processus de "Timeout"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR