サービスにバインドされたいくつかのアクティビティを持つアプリケーションがあります。サービスは、asynctask でソケット接続を開き、ソケット サーバーからの受信メッセージのリッスンを開始します (while(true))。
問題は、メッセージが到着した複数のアクティビティにコールバックを送信する方法です。
前もって感謝します
サービスにバインドされたいくつかのアクティビティを持つアプリケーションがあります。サービスは、asynctask でソケット接続を開き、ソケット サーバーからの受信メッセージのリッスンを開始します (while(true))。
問題は、メッセージが到着した複数のアクティビティにコールバックを送信する方法です。
前もって感謝します
onBind() でアクティビティをサービスにバインドしていますか? もしそうなら、なぜですか?通常、onBind() は必要ありません。
私が知る限り、あなたはサーバーからの受信メッセージをリッスンしています。Google クラウド メッセージングを使用して調査しましたか?
アクティビティはサービスにバインドする必要はありません。何かがシャットダウンするまで実行され続けます。その上で AsyncTask を実行できますが、独自のバックグラウンド HandlerThread を使用することもできます。
いずれにしても、アクティビティに返信するには、LocalBroadcastReceiver を使用して、サービスからブロードキャスト インテントを送信します。