1

3 つのアクティビティ A、B、および C があるとします。これらのアクティビティはすべてソケット接続を使用してデータを受信します。ソケット接続は Telnet 接続であるため、勝手に閉じて再接続することはできません。

現在のバック スタックが A > B > C の場合、Android によって破棄される可能性があるため、メソッドでActivity Aソケットを閉じることができません。そうしないと、ソケットからデータを受信できません。onDestroy()Activity C

アプリ終了時にソケットをクローズしたい。ルート アクティビティで [戻る] を押すと、手動で閉じることができます。ただし、バックグラウンドでアプリが強制終了された場合、この状況を処理してソケットを閉じ、関連するリソースを解放するにはどうすればよいですか?

ありがとうございました!!

4

1 に答える 1

0

実際にはActivity、通信には /task を 1 つだけ使用することをお勧めします。他のすべては、 を使用する必要がありますCommunicationManageronDestroyまた、常に呼び出されるとは限らないことも覚えておいてください。onPauseアクティビティの開始/終了時に使用して、すべてのものをきちんと整理された安全な方法で終了するようにしてください。

基本的に、UI がブロックされないように、通信を処理する非同期バックグラウンド タスクを作成します。

于 2012-07-15T14:33:43.220 に答える