1

サービスにバインドされたいくつかのアクティビティを持つアプリケーションがあります。サービスは、asynctask でソケット接続を開き、ソケット サーバーからの受信メッセージのリッスンを開始します (while(true))。

問題は、メッセージが到着した複数のアクティビティにコールバックを送信する方法です。

前もって感謝します

4

1 に答える 1

0

onBind() でアクティビティをサービスにバインドしていますか? もしそうなら、なぜですか?通常、onBind() は必要ありません。

私が知る限り、あなたはサーバーからの受信メッセージをリッスンしています。Google クラウド メッセージングを使用して調査しましたか?

アクティビティはサービスにバインドする必要はありません。何かがシャットダウンするまで実行され続けます。その上で AsyncTask を実行できますが、独自のバックグラウンド HandlerThread を使用することもできます。

いずれにしても、アクティビティに返信するには、LocalBroadcastReceiver を使用して、サービスからブロードキャスト インテントを送信します。

于 2012-11-27T01:05:00.973 に答える