Click sur bouton par code

Signaler
Messages postés
30
Date d'inscription
vendredi 16 juillet 2010
Statut
Membre
Dernière intervention
10 juillet 2011
-
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
-
Bonjour tout le monde
Je dévellope une application sous Eclipse pour android, et j'ai un traitement qui s'éxécute lors du clik sur un bouton. Et je veux que lorsque je clique sur ce bouton, le traitement ne s'arrête jamais. C'est à dire il doit rester en boucle. J'ai essayé le
Do{//traitment
                }while(true);

mais puisque le traitement que je fait touche un peu du côté GPS et 3G ça plante.
Je veux seulement savoir si c'est possible de faire en sorte que le bouton se clique chaque 10secondes par exemple mais sachant que le click se fera par programme et non pas par l'utilisateur. ça fait une semaine que je cherche et je n'ai pas trouvé qlq chose qui pourrai me servir, ou ca peu que je nai pas bien compris. Merci pour vos réponse d'avance.

4 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Oui, c'est possible. C'est la notion de thread. Montre nous ton code, qu'on te dise ce qui cloche.
Messages postés
30
Date d'inscription
vendredi 16 juillet 2010
Statut
Membre
Dernière intervention
10 juillet 2011


public class location extends Activity implements OnClickListener, LocationListener {


private LocationManager lmanager;
    private Location location1;
    private static final String LOG_TAG = "Log : ";
    private final String mimeType = "text/html";
    private final String encoding = "utf-8";
    private Timer timer;
    Date r;
    Activity conect;
    boolean exacte=true;
    //private  String  locationProvider; 
   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
 

        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
        setContentView(R.layout.main);


   lmanager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

       
       reinitialisationEcran();
         
       
       findViewById(R.id.obtenir_position).setOnClickListener(this);
       findViewById(R.id.btenvoyer).setOnClickListener(this);
       findViewById(R.id.automa).setOnClickListener(this);// ceci est lebouton    
      // que je désire qu'il s'active de temps en temps
       
   }



et voici le traitement qu'il fait

        	String l; TextView v; 
        	y=obtenir_position();
        	v=(TextView)findViewById(R.id.latitude);
        	l=v.getText().toString();
        	if(y==true/*&&l!="0.0"*/)
        	{
        	String nom=readNom();
        	String Page,lien="http://geolocalisation.us.ma/ajout.php?",latitude,longitude,vitesse,time,dat;
        	TextView variable;
        	variable=(TextView)findViewById(R.id.latitude);
        	latitude=variable.getText().toString();
        	variable=(TextView)findViewById(R.id.longitude);
        	longitude=variable.getText().toString();
        	variable=(TextView)findViewById(R.id.vitesse);
        	vitesse=variable.getText().toString();
        	variable=(TextView)findViewById(R.id.time);
        	time=variable.getText().toString();
        	 lien=lien.concat("latitude=");
             lien=lien.concat(latitude);
             lien=lien.concat("&longitude=");
             lien=lien.concat(longitude);
             lien=lien.concat("&Time=");
             lien=lien.concat(time);
             lien=lien.concat("&nom=");
             lien=lien.concat(nom);
             lien=lien.concat("&vitesse=");
             lien=lien.concat(vitesse);
             lien=lien.concat("&dat=");
             dat=getdate();
             lien=lien.concat(dat);
             try {Page =location.getPage(lien);	} catch (ClientProtocolException e) {
                  ((TextView)findViewById(R.id.latitude)).setText(lien);
     		} catch (IOException e) {
                 ((TextView)findViewById(R.id.latitude)).setText(lien);	
     		}
        	}
        	
        	
        	



merci d'avance
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Ce code n'est pas très clair, je ne vois pas l'utilisation de ton timer.

En l'utilisant, tu dois pouvoir appeler un doClick sur le bouton choisit.
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
salut,

arg!! c'te boucherie!!! heureusement que c est entre les balises "code" ;o) ... Ou donc est la POO ;o) ...


sinon! pourquoi faire un bouton si ce n est pas pour que l utilisateur appuie dessus?!!! si c est pour executer une action répétitive utlise un thread avec une pause si tu en as besoin... Par contre dans ton exemple on ne voit pas ton itération!!??
je pense qu il te faut lancer ton processus dans un thread indépendant ce qui te permet de ne pas blocker l ihm et de te permetre de proposer l arret du traitement...

bon courage ;o)

GodConan ;o)