У меня есть Android-центр для загрузки файлов на сервер. Файлы будут добавлены в очередь intentservice на каждые 1 минуту. Он отлично работает в устройствах Android с ОС менее 5.0.1. Но в android 5.0.1 при загрузке файла, если сеть потеряна, я не получаю никакого ответа, не бросая никаких исключений, и служба намерения заблокирована. Файлы не загружаются с этой точки. Я должен перезапустить приложение, чтобы снова запустить службу. Ниже приведен код, который у меня есть в методе onHandleIntent.android 5.0.1 загрузка файла не исключение при отключении сети
int ReadBytes = 0;
int BUFSIZ = 4096;
byte Buf[] = new byte[BUFSIZ];
outputStream = conn.getOutputStream();
dataOutputStream = new DataOutputStream(outputStream);
fileInputStream = new FileInputStream(source);
long prevBytesRead = 0;
ReadBytes = fileInputStream.read(Buf, 0, BUFSIZ);
while(ReadBytes>0){
dataOutputStream.write(Buf, 0, ReadBytes);
prevBytesRead += ReadBytes;
long totalbytes = fileInputStream.getChannel().size();
ReadBytes = fileInputStream.read(Buf, 0, BUFSIZ);
}
outputStream.flush();
dataOutputStream.flush();
Любая помощь будет принята с благодарностью.
'long totalbytes = fileInputStream.getChannel(). Size();'. Лучше удалите это утверждение. Сначала это неверно. Во-вторых, вы его не используете. – greenapps