Trong chương trình Android của tôi, tôi có một số mã tải xuống tệp. Điều này làm việc tốt, nhưng kể từ khi trên điện thoại di động, bạn có thể bị ngắt kết nối bất cứ lúc nào, tôi cần phải thay đổi nó làm nó kết nối lại và tiếp tục tải xuống khi bạn đang nửa chừng và ai đó gọi/bạn mất di động tiếp nhận/etc. Tôi không thể tìm ra cách để phát hiện InputStream đã ngừng hoạt động. Xem mã bên dưới:Ngắt kết nối Internet InputStream của Android
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);
}
Khi tôi bị mất kết nối internet, đăng nhập của tôi cho thấy:
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -6024- Downloaded. (some lower number)
Và sau đó chương trình của tôi chỉ bị treo trên while ((len1 = vv Tôi cần phải làm cho nó quá khi internet bị ngắt kết nối tôi chờ đợi cho internet được kết nối một lần nữa và sau đó tiếp tục tải về
Xin chào, cảm ơn nhưng tôi có kết nối HTTPURL - làm thế nào để bạn có được SocketChannel từ đó? Cảm ơn, –