Android бесконечная загрузка URL - PullRequest
2 голосов
/ 26 октября 2011

Я создаю приложение, которое на заставке загружает данные из файла через URL-адрес в Интернете.Это приложение в настоящее время работает, опубликовано и получает отличные отзывы:)

Однако я заметил, что на некоторых устройствах (а именно в HTC Desire), когда я создаю URL-адрес, можно сказать, что:

url = new URL("https://www.blah.com/blah.txt");

URL будет просто зависать там, и заставка будет загружаться бесконечно.Я пытался поместить это в свой собственный поток и выбрасывать тайм-аут, когда это происходит, но кажется, что его блокировка даже увеличивается, так как тайм-аут никогда не перехватывается функцией ожидания родительского потока.

Теперь, какЯ уже говорил, что это, похоже, только для HTC Desire, так как большинство устройств используют мое приложение без помех.И это не происходит на каждом HTC Desire с приложением.Устройства, которые имеют проблемы, похоже, возникают спорадически.Иногда приложение будет работать нормально, иногда оно будет бесконечно загружаться.Когда это происходит, это происходит как по WiFi, так и по 3G.Если пользователь убивает приложение, когда оно бесконечно зависает, а затем снова открывается, оно решает проблему и загружается нормально.

У меня нет идей ... у кого-нибудь есть какие-нибудь?Единственное, что я могу подумать, это попробовать другой конструктор, например:

url = new URL("https", "www.blah.com", 443, "/blah.txt");

, но я не слишком разбираюсь в сети и не могу определить другие порты, которые можно использовать.Сайт, который я использую, является сайтом «https».

Заранее благодарю за помощь.

1 Ответ

1 голос
/ 26 октября 2011

Вы можете установить время ожидания соединения с помощью setConnectTimeout() для объекта URLConnection.Это позволит вам поймать SocketTimeoutException и либо повторить попытку, либо сделать что-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...