2010-09-14 2 views

Répondre

0

Eh bien, comme l'a déjà dit Falmarri ... c'est une question très vague. Mais encore, je peux vous donner une impulsion stimulante:

Vous pouvez utiliser un service, qui interroge un serveur sur des périodes de temps spécifiques, pour vérifier, s'il y a de nouveaux messages. Cela produirait beaucoup de données supplémentaires, car même s'il n'y a pas de messages, le service demanderait toujours au serveur. Une minuterie ferait que:

public Timer timerT = new Timer(); 
Handler updateNow; 

TimerTask task = new TimerTask() { 
    public void run() { 
    updateNow.sendEmptyMessage(TICK); 
    } 
}; 

updateNow = new Handler() { 
    @Override 
    public void handleMessage(Message msg) { 
    switch (msg.what) { 
    case TICK:     
     // Query wird gestartet 
     new updateMsg().execute(); 
     break; 
    } 
    } 
};  

// Fragt alle 60 Sekunden 
timerT.scheduleAtFixedRate(task, 0, (60 * 1000)); 

Und die Abfrage an den serveur:

public class updateMsg extends AsyncTask<String, String, Void> {    
    String message = ""; 

    protected void onPreExecute() { } 

    protected Void doInBackground(String... data) { 
     HttpReq request = Http.getInstance().createRequest(); 
     request.setUrl("http://www.deinserver.de/msg.php"); 
     request.setMethod("POST"); 

     request.addParam("fuer_name", "keenora"); 

     request.execute(); 

     message = request.getResult();   
     return null;   
    } 

    protected void onPostExecute(Void unused) { 
     Log.e("DEBUG", "Nachricht vom Server erhalten: " + message); 
    } 

    protected void onCancelled() { } 
} 

Und zu nicht vergessen die serveur Seite:

<?php 

    // Ganz dummes Script 
    switch($_POST['fuer_name']) { 
    case 'keenora': { 
     echo 'Hallo!'; 
     break; 
    } 
    default: { 
     echo 'Es gibt keine neuen Nachrichten!'; 
     break; 
    } 
    } 

?> 
Questions connexes