Androidプログラミングの新機能である、私のアプリは、使用中にユーザーがさまざまなアクティビティに変更している間に、サーバーとの常時接続を維持する(状態と更新を取得する)一般的にアプリ。異なるAndroidの活動中にソケットとサーバーを維持する
ユーザーがさまざまなアクティビティクラスに変更しても、サーバーへの接続が一定のままである可能性があります。
しかし、主なアクティビティでは、プレーヤーが別のアクティビティに変更されても常に実行されるバックグラウンドハンドラを作成することがあります。
このハンドラは、一種のバックグラウンドタスクのように、サーバとの接触を維持するエンティティであり、その時点で実行されているすべてのアクティビティに表示するステータスも伝えます。
OnCreate(....)
{
handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
tick();
handler.postDelayed(this,1000);
}
},1000);
}
void tick()
{
communicate with server
}
しかし、別の活動へのユーザーの変更は、ハンドラはまだ何を実行しない場合のようなもの?データを取得したときに関数を呼び出す何らかの種類のソケットコールバックを設定すると、別のアクティビティが実行されているにもかかわらず、ソケットからサーバーからデータを受け取ることができますが、そのコールバックはメインアクティビティにあります。他のアクティビティがアクティブな場合
また、ソケットから取得した新しい情報を、そのUIを更新するために実行されているすべてのアクティビティに伝達する方法。私は、すべてのアクティビティがアクセスできるデータ構造を持っていると思っています。それは、スレッドや、サーバと通信しているものによって占められています。
誰かが例を持っているか、それを行う標準的な方法を知っていますか?
おかげ
あなたはシングルトンパターンを見たいでしょう。どのアクティビティにもソケットを格納しないでください –