Попытка открыть сокетное соединение в отдельном потоке, вызвав это:
Socket sc = sc = new Socket(address, Integer. parseInt(port));
Но есть проблема, если нет активного интернет-соединения, которое блокирует эта тема, на моем htc hero 2.1 на 30 секунд и моем эмуляторе Android 2.2 на 2 минуты.
Я пытался использовать этот метод перед открытием соединения:
public static boolean isOnline()
{
ConnectivityManager cm = (ConnectivityManager) app.getInstance().getSystemService(Context. CONNECTIVITY_SERVICE);
if(null != cm.getActiveNetworkInfo())
return cm.getActiveNetworkInfo().isConnectedOrConnecting();
return false ;
}
public void run()
{
if(!isOnline())
throw new IOException("internet not connected");
Socket sc = new Socket(address, Integer. parseInt(port));
}
И все хорошо, но если активное соединение будет потеряно после вызова isOnline и перед новым вызовом Socket, он все еще блокируется на случайное время.
Мой вопрос, есть ли возможность решить эту проблему? или просто заблокировать эту ветку на фиксированное время на 2-3 секунды?