IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Créer une fonction générale


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2011
    Messages : 37
    Par défaut Créer une fonction générale
    Bonsoir,

    Voilà j'ai une procédure qui me permet de se connecter à une base MySQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    public void getData() {
    	String result = "";
    	ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    	nameValuePairs.add(new BasicNameValuePair("var","SELECT * FROM people"));
    		 try{
    			 HttpClient httpclient = new DefaultHttpClient();
    			 HttpPost httppost = new HttpPost("http://.........");
    			 httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    			 HttpResponse response = httpclient.execute(httppost);
    			 HttpEntity entity = response.getEntity();
    			 is = entity.getContent();
    		 }catch(Exception e){
    			 Log.e("log_tag", "Erreur de connexion http "+e.toString());
    		 }
     
    		 try{
    			 BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
    		 	 StringBuilder sb = new StringBuilder();
    		 	 String line = null;
    		 	 while ((line = reader.readLine()) != null) {
    		 		 sb.append(line + "\n");
    			 } 
    		 	 is.close();
    		 	 result=sb.toString();
    		 	 }catch(Exception e){
    		 		 Log.e("log_tag", "Error converting result "+e.toString());
    		 	 }
    		 try{
    	 			 JSONArray jArray = new JSONArray(result);
     
    	 			 for(int i=0;i<jArray.length();i++){
    		 			 json_data = jArray.getJSONObject(i);
    		 			 results.add((String) json_data.get("id") + " "+ json_data.get("name")+ " " + json_data.get("sex")+ " " + json_data.get("birthyear"));
    		 			 fillList();
    	 			 } 
    	 		}catch(JSONException e){
    				 Log.e("log_tag", "Error parsing data "+e.toString());
    			 }
     
     }
    J'aimerais pouvoir appeler cette procédure n'importe où dans mon code : dans n'importe quelle class, n'importe quelle activité. Donc je voudrais créer cette procédure de manière complètement globale de l’application.

    Est-ce possible ?

    Car actuellement je l'appelle grâce à : Mais ce code est reconnu et accessible que depuis seulement le même fichier.java où se trouve cette procédure (normal^^).

    Merci

    John

  2. #2
    Membre très actif Avatar de _Xavier_
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2009
    Messages : 311
    Par défaut
    La première solution qui est classique est de le mettre dans une classe Java, MySqlConnector.java. Tu peux déclarer la méthode avec une portée "static" pour ne pas avoir à instancier plusieurs fois la classe.

    Inconvénient : Si la connexion à la base prend du temps, l'activité qui appelle la méthode se plante et déclenche une exception.

    La deuxième solution, typiquement Android, est de mettre le code dans une méthode publique du service, dans un thread. Dans la mesure où ta fonction n'est utilisée que par les activités de ton application, un LocalService correspond mieux à ton problème qu'un RemoteService

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2011
    Messages : 37
    Par défaut
    Est-ce que tu pourrais m'expliquer les démarches pour mettre en place un LocalService .

    Merci.

  4. #4
    Membre très actif Avatar de _Xavier_
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2009
    Messages : 311
    Par défaut
    Une présentation sur les services est faite ici. Je ne l'ai pas intégralement lu mais tu peux t'en servir et venir en discuter en cas de problème.

    http://blog.developpez.com/android23...on-de-service/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une fonction
    Par Jeffboj dans le forum Access
    Réponses: 7
    Dernier message: 15/04/2006, 20h49
  2. Créer une Fonction recherche sur Access
    Par remwideco dans le forum Access
    Réponses: 4
    Dernier message: 30/01/2006, 10h36
  3. créer une fonction avec parametre optionnel
    Par maximenet dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2006, 20h51
  4. Réponses: 6
    Dernier message: 10/08/2005, 11h36
  5. Créer une fonction mathématique pendant l'exécution
    Par zeprogrameur dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2004, 11h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo