私のAndroidプログラムには、ファイルをダウンロードするコードがあります。これは問題なく動作しますが、携帯電話ではいつでも切断できるため、途中で誰かが電話をかけたり、携帯電話の受信を失ったりしたときに、再接続してダウンロードを再開するように変更する必要があります。InputStreamが機能しなくなったことを検出する方法がわかりません。以下のコードを参照してください。
InputStream in = c.getInputStream();
byte[] buffer = new byte[8024];
int len1 = 0;
while ( (len1 = in.read(buffer)) > 0 ) {
Log("-"+len1+"- Downloaded.");
f.write(buffer,0, len1);
Thread.sleep(50);
}
インターネット接続が失われると、ログに次のように表示されます。
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -6024- Downloaded. (some lower number)
そして、私のプログラムはしばらくの間ハングします((len1=など。インターネットが切断されたときにインターネットが再び接続されるのを待ってからダウンロードを再開するようにする必要があります。