Androidアプリケーション(サービス、違いが生じる場合)に永続的なHTTP 1.1接続を使用させようとすると、問題が発生します。
次のループ(簡略化されたテストケース)は、デスクトップJREでの単一のTCPセッションを介して機能しますが、Androidデバイスでは、ソケットの作成/破棄サイクル全体が発生します。
while (true) {
URL url;
try {
url = new URL("http://10.0.0.125:8080/SRV?");
URLConnection connection = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection) connection;
int responseCode = httpConnection.getResponseCode();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
}
OracleのJDKは、「システムプロパティ」と呼ばれるものを記述しています。
http.keepAlive =デフォルト:true
http.maxConnections =デフォルト:5
Androidのランタイムに、持続的接続を維持できないような類似点はありますか?