W moim programie na Androida mam kod, który pobiera plik. Działa to dobrze, ale ponieważ na telefonie komórkowym, możesz być odłączony w dowolnym momencie, muszę to zmienić, czy to ponownie łączy się i wznawia pobieranie, gdy jesteś w połowie i ktoś wzywa/tracisz odbiór komórek/etc. Nie mogę dowiedzieć się, jak wykryć, że InputStream przestał działać. Zobacz poniższy kod:Android InputStream Internet Disconnect
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);
}
Kiedy tracę połączenia internetowego, Mój dziennik pokazuje:
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -6024- Downloaded. (some lower number)
I wtedy właśnie mój program zawiesza się na chwilę ((len1 = itd. Muszę to zrobić tak kiedy internet zostanie odłączony czekam na internet zostać ponownie podłączony, a następnie wznowić pobieranie
Witam, dziękuję, ale mam połączenie HTTPURL - w jaki sposób otrzymujesz z tego SocketChannel? Dzięki, –