2017-09-12 5 views
0

は時々ここで私はこの行でjava.net.SocketTimeoutExceptionjavaのアンドロイドjava.net.SocketTimeoutException

while ((bytesRead = inputStream.read(content)) != -1) { 
          baos.write(content, 0, bytesRead); 
          str = baos.toString("UTF-8"); 
          System.out.println(str); 
          requestSocket.setSoTimeout(8000); 
          break; 
         } 

を持っている:あなたは、8秒の読み取りタイムアウトを設定するので、あなたは、読み取りタイムアウトを取得している

while ((bytesRead = inputStream.read(content)) != -1) 
+0

AndroidManifest.xmlファイルに ''という権限を追加しましたか? – procrastinator

+0

@procrastinatorはい私はこの許可を追加しますが、私はいつもこの例外が表示されない場合があります10分時々20分時々3分 –

+0

@procrastinatorこの許可がない場合、この例外は発生しません。 – EJP

答えて

0

をし、ピアはデータの送信に8秒以上かかりました。必要がない場合は、読み取りタイムアウトを増やしてください。あなたがそれを望むなら、同輩を修正してください。

コードはあまり意味がありません。ループ内で読み取りタイムアウトを設定していますが、これは無意味です。また、1回の読み取り後も破棄しています。

0

携帯電話がスリープ状態になるとどうなりますか?

私は数か月前に同様の問題を抱えていましたが、この問題は「ドーズ」機能に関連していました。

https://developer.android.com/training/monitoring-device-state/doze-standby.html

ドーズは、デバイスが長期間未使用である場合アプリの背景CPUおよびネットワークアクティビティを遅らせることにより、電池の消費を減少させます。 App Standbyは、ユーザーが最近交流していないアプリのバックグラウンドネットワークアクティビティを延期します。

それは、Android以降に追加されました> 6.X

https://android-developers.googleblog.com/2015/10/how-google-cloud-messaging-handles-doze.html

のAndroid 6.0マシュマロは「ドーズ」と呼ばれる新しい省電力機能が導入されました。ユーザーが一定時間電源を抜いたままにしておくと、画面が消灯した状態でDozeに入ります。これが起こると、システムはアプリケーションの活動を延期して電力を節約します。アプリの同期やその他の保留中の操作を実行するため、アイドル状態のメンテナンスウィンドウと呼ばれる通常の操作を定期的かつ短時間で再開します。

+0

なぜdownvoted?あなたはコメントを追加できますか? – db80

関連する問題