Android InputStream Internet Disconnect

голоса
7

В моей 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 решил и т.д. Мне нужно сделать так, когда интернет обрывается я жду интернет должен быть подключен, а затем снова возобновить загрузку.

Задан 26/02/2009 в 03:37
источник пользователем
На других языках...                            


1 ответов

голоса
1

Посмотрите здесь: http://developer.android.com/reference/java/nio/channels/SocketChannel.html

EDIT ( на основе комментариев): http://www.jguru.com/faq/view.jsp?EID=72378

Так мысли на основе выше .... вы могли бы поставить чтение в потоке и периодически проверять, если поток остановлен чтение данных (обновление общей переменной возможно). Если он имеет убить соединения и поток и иметь дело с ним, как вам нужно.

Другой альтернативой является не использовать HttpURLConnection и иметь дело с битами, которые необходимо вашей собственной личности.

Ответил 26/02/2009 в 03:44
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more