2011-11-08 16 views
3

私のアプリケーションでは、ユーザーログインログアウトのものがあります。 ユーザーのログインがメッセージの形式のようにサーバーから更新を受け取ることを一度欲しいです。android私たちがそれを止めるまで、バックグラウンドでサービスを実行することが可能です

10秒ごとに新しいメッセージが送信されます。 私はログインしているすべてのユーザーに、サーバーからサーバーから1つずつ更新されたメサージをすべて取得します。

ユーザがログインボタンをクリックすると、サービスが開始されます。ログアウトはサービスが停止することを意味します。

私はこの

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書き込みをクリックします。

ログアウトするまで、すべてのメッセージを1人ずつすべてのユーザーに更新していますか?

これは書き込み方法ですか?

答えて

0

これにより、ログインごとにサービスの新しいインスタンスが開始されます。これにより、バッテリーの消費量と衰退のパフォーマンスが大幅に向上します。したがって、返されたIBinderがそのユーザーのためにサーバーからのメッセージを処理できるように、BindServiceを使用できるようにonBindを実装します。

+0

これは、サービスのみを使用する必要があることを意味します。そして、これらのすべてをoncreate()に書き込むのではなく、onBindの中に書き込むでしょうか?ただ私を明確に – Jyosna

+0

私は複数のクライアントがあなたのサービスの同時性を使用できると仮定しています。開始されたサービスとのバインドは、別のサービスを開始する方が良いです。 –

+0

サービスをバインドするには、bindService(intent、mConnection、Context.BIND_AUTO_CREATE); ここでmConnectionの使用は何ですか? – Jyosna

関連する問題