2011-11-08 30 views
3

在我的應用程序用戶登錄註銷的東西在那裏。 我希望一旦用戶登錄意味着它將從消息形式的服務器獲取更新。android是否可以在後臺運行服務,直到我們停止它

服務器每10秒發送一條新消息。 我希望每個登錄的用戶都能從服務器中逐一獲取所有更新的服務器的消息。

當用戶點擊登錄按鈕時,服務將開始。註銷表示服務將停止。

我不喜歡這樣

public class MessageService extends Service { 

    public String currentMessage=""; 

    @Override 
    public IBinder onBind(Intent arg0) { 
     return null; 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     Toast.makeText(this,"Service created ...", Toast.LENGTH_LONG).show(); 
     checkForCurrentTimestamp(); 

    } 


    private void checkForCurrentTimestamp() { 
     //check TimeSatmp with Server TimeStamp 
     //if(!same) 
     //currentMessage= get message stored in server 

    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     Toast.makeText(this, "Service destroyed ...", Toast.LENGTH_LONG).show(); 
    } 
} 

和我LoginActivity的loginButton內點擊我寫啓動服務和logoutButton點擊停止服務。

它是否將所有消息逐個更新爲每個用戶,直到他們註銷?

這是寫的方式嗎?

回答

0

這將在每次登錄時啓動新的服務實例,這將增加電池消耗和衰減性能的顯着量。所以實現onBind,以便您可以使用BindService,以便返回的IBinder可以爲其用戶處理來自服務器的消息。

+0

這意味着我應該只使用服務。而不是寫所有這些東西在oncreate()我會寫onBind內?只要清除我 – Jyosna

+0

我假設多個客戶端可以同時使用您的服務。所以與啓動服務綁定更好,啓動另一個。 –

+0

來綁定我必須給的服務,bindService(intent,mConnection,Context.BIND_AUTO_CREATE); 這裏mConnection的用法是什麼? – Jyosna

相關問題