Xamarin Forms имеет встроенный элемент управления Map . TKCustomMap - сторонний рендерер, который добавляет функциональность встроенной карте.
Я думаю, что URLConnection.setReadTimeout - то, что Вы ищете.
Я работал над этой проблемой в среде JVM 1.4 просто недавно. Ответ запаса должен использовать системные свойства sun.net.client.defaultReadTimeout (тайм-аут чтения) и/или sun.net.client.defaultConnectTimeout. Они документируются в Сетевых Свойствах и могут быть установлены через-D аргумент на командной строке Java или через вызов метода System.setProperty.
Предположительно, они кэшируются реализацией, таким образом, Вы не можете изменить их от одной вещи до другого так один, они используются однажды, значения сохраняются.
Также они действительно не работают на крыло соединений SSL HttpsURLConnection. Существуют другие способы иметь дело с тем использованием пользовательского SSLSocketFactory.
Снова, все это относится к JVM 1.4.x. В 1,5 и выше Вас имеют больше методов в наличии для Вас в API (как отмечено другими респондентами выше).
Начиная с Java 1.5 возможно установить тайм-аут чтения в миллисекундах на базовом сокете через 'setReadTimeout (международный тайм-аут)' метод на классе URLConnection.
Обратите внимание, что существует также 'setConnectTimeout (международный тайм-аут)', который сделает то же самое для начального соединения с удаленным сервером, таким образом, будет важно установить это также.
Если у Вас есть java 1.4:
Я принимаю тайм-аут соединения (URLConnection.setConnectTimeout(int timeout)
) бесполезно, потому что Вы делаете некоторую потоковую передачу.
---Не уничтожайте поток---, Он может вызвать неизвестные проблемы, открытые дескрипторы, и т.д.
Породите java.util. TimerTask, где Вы проверите, закончили ли Вы процесс, иначе, закрывают BufferedReader и OutputStream URLConnection
Вставьте булев флаг isFinished
и набор это к истинному в конце Вашего цикла и ко лжи перед циклом
TimerTask ft = new TimerTask(){
public void run(){
if (!isFinished){
urlConn.getInputStream().close();
urlConn.getOutputStream().close();
}
}
};
(new Timer()).schedule(ft, timeout);
Это, вероятно, вызовет ioexception, таким образом, необходимо будет поймать его. Исключением не является плохая вещь сам по себе. Я опускаю некоторые объявления (т.е. финал), таким образом, анонимный класс может получить доступ к Вашим переменным. В противном случае затем создайте POJO, который поддерживает ссылку, и передайте это timertask