2016-07-25 13 views
0

複数のアクティビティを使用するAndroidアプリを作成しようとしています。私はServiceを使用するべきであることを理解しました。ソケットにはサーバーに接続されます。すべてActivityは、サーバーへのいくつかの特定の要求を使用します(たとえば、最初のアクティビティはユーザーをロードし、2番目のアクティビティはメッセージを送信できます)。では、アクティビティ間でサーバからの応答をどのようにナビゲートできますか(たとえば、ユーザのリストは最初のActivityに渡され、メッセージは2番目のActivityにロードされます)。異なるアクティビティでサーバーから異なる応答を渡す

答えて

2

あなたがデータを取得した後、あなたがLocalBroadcastを発射し、LocalBrodcast

ため

BroadcastReceiverダイナミック参照のチュートリアルを使用して、アクティビティにそれを受け取り、応答のタイプに応じて応答を処理することができ、サーバーからデータをロードするための Serviceを使用していると言うと
+0

ありがとう、私はこの解決策をチェックしますが、これを明確にしたいと思います:ソケットをサービス中に保存しますこれはアプリケーションのインスタンスにバインドされます。すべてのアクティビティは、アプリケーションでサービスを返すメソッドを呼び出すことになります。しかし、私の活動が拘束される前にサービスを要求するのはどうでしょうか?どうすればそれを防ぐことができますか?そして、あなたはこのことをより良い方法でアドバイスできますか? –

+0

しかし、アクティビティがバインドされる前にサービスをリクエストするとどうなりますか?私は正確に何を言っているのか分かりません。 –

+0

私は、サービスが拘束される前にアクティビティがサービス中のメソッドを呼び出そうとした場合を意味します。例えば。私はアプリケーションが起動した後にアプリケーションとアクティビティを起動します。Application :: onCreate()私はbindService()を持っています:Activity :: onCreate()私は 'service =((AppCore)this.getApplication())。getService (); 'しかし、まだサービスがバインドされていない場合、私は' service'にnullを返します。 –

0

あなたのサービスはあなたのアクティビティのルーターになることができます。特定のレスポンス(switch-case IDにマップする)によって、適切なアクティビティが開始されます。開始アクティビティは、チャットのためにサービスにバインドできます。

+0

アクティビティのインスタンスが既に存在する場合は、 –

+0

インテントフラグを使用して再生します。 [FLAG_ACTIVITY_REORDER_TO_FRONT](https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT) –

関連する問題