2010-09-14 44 views
0

寫郵件客戶端,例如,在PC上的網站或軟件,你可以寫一些新聞或其他東西,然後它會在你的Android如何從服務器

更新是有這樣的任何實例,或相關的教程

+0

這可能是最模糊的一個我在SO上看到的問題 – Falmarri 2010-09-14 05:33:03

回答

0

那麼,正如法爾馬利已經說過的......它是一個非常模糊的問題。但是,我仍然可以給你一些發人深省的衝動:

您可以使用服務在特定的時間週期上查詢服務器,以檢查是否有新消息。這會產生大量的開銷數據,因爲即使沒有任何消息,服務仍然會詢問服務器。計時器會這麼做:

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死Abfrage的巢穴服務器:

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 nicht祖vergessen死服務器頁面:

<?php 

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

?>