Android: Atividade demorando muito para ser exibida devido ao serviço da web Solicitação Http

Uma das minhas atividades faz uma solicitação http para um serviço da web para obter alguns dados meteorológicos quando inicio o aplicativ

O problema que a atividade levará de 3 a 4 segundos para ser exibido devido à solicitação do serviço da web. (Testado no dispositivo real)

Eu sei que não estou fazendo isso da maneira certa. Tudo o que estou fazendo é no método onCreate, estou fazendo a solicitação, recuperando o xml, analisando e exibindo os dado

Qual é a melhor maneira de lidar com solicitações de serviço da web no Android para que o aplicativo não exiba uma tela branca enquanto a solicitação está sendo feita? Talvez alguns tópicos .......

Sei que isso não está acontecendo em outro aplicativo que tenho no meu dispositivo que solicita a obtenção de dados ao viv

Notas

1) O xml que eu recebo não é tão grande (5 elementos com 5 elementos aninhados em cada um

2) Tentei com a rede 3G e Wi-Fi, mas o tempo de resposta ainda é o mesm

Código de amostra

   @Override
    public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.clock_weather);

   // this is where it is making the request and parsing the xml.
    WeatherSet set = getWeatherCondition("New York, NY");

    TextView currentWeather  = (TextView) findViewById(R.id.current_weather);
    currentWeather.setText("" + set.getWeatherCurrentCondition().getTempFahrenheit());

    TextView currentWeatherH  = (TextView) findViewById(R.id.current_weatherH);
    currentWeatherH.setText("H: " + set.getWeatherForecastConditions().get(0).getTempMaxFahrenheit());

    TextView currentWeatherL  = (TextView) findViewById(R.id.current_weatherL);
    currentWeatherL.setText("L: " + set.getWeatherForecastConditions().get(0).getTempMinFahrenheit());

    ImageView currentWeatherIcon  = (ImageView) findViewById(R.id.current_weather_icon);
    String imageUrl = set.getWeatherCurrentCondition().getIconURL();
    Drawable bitmapDrawable = getImageBitmap(imageUrl);
    currentWeatherIcon.setImageDrawable(bitmapDrawable); 

    setForecastInfo(set, R.id.day1, R.id.day1_icon, R.id.day1_temp, 1  );   
    setForecastInfo(set, R.id.day2, R.id.day2_icon, R.id.day2_temp, 2  );   
    setForecastInfo(set, R.id.day3, R.id.day3_icon, R.id.day3_temp, 3 );    
    setForecastInfo(set, R.id.day4, R.id.day4_icon, R.id.day4_temp, 4  );
}

questionAnswers(6)

yourAnswerToTheQuestion