Bonjour,

J'essaye actuellement de créer une connexion entre un serveur (PC) et une application Android (client). Je voudrais faire en sorte que dans l'application, je puisse vérifier en continu si je reçois des messages du serveur (même si l'application est fermée..). Et dès que je reçois un message, je voudrais pouvoir répondre au message en cliquant sur un bouton ou bien automatiquement dès la réception du message. Pour cela, je pense qu'il faut que je créer une classe fille dans mon activité principal avec Asynctask. Cependant, je ne comprend pas trop comment fonctionne Asynctask. Je ne vois pas à quoi correspond la fonction OnPostExecute.

Voici le code de ma classe fille (qui est appelée par new Client().execute(); dans la fonction onCreate de mon activité principale.

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
class Client extends AsyncTask<Void,Void,String>{
        PrintWriter out;
        string res;
        int numPort = 1500;
        Socket client;
        BufferedReader in;
 
 
        // methode pour envoyer des données au serveur
        void envoyer(string res) throws IOException{
            this.out.println(res);
        }
 
 
        public String doInBackground(Void...params){        
             try {
                client = new Socket("10.0.2.2", numPort);
                in = new BufferedReader(new InputStreamReader(client.getInputStream()));
                out = new PrintWriter(client.getOutputStream(), true);
 
 
               //permet de verifier si je reçois un message  
                while( (res=in.readLine()) != null){
                            String time_arbitraire = "test";       
                            envoi(time_arbitraire); 
                 }
 
                }catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
             return res;
        }
 
        public void onPostExecute(String result){
 
        }
 
 
    }
En vous remerciant par avance