Tecnologia do Blogger.
RSS

[androidbrasil-dev] AsyncTask erro intermitente

Boa tarde pessoal tudo bem?


Tenho uma AsyncTask para carregar a imagem e exibi-la na tela. Tenho duas imagem que estão sendo buscadas via HTTP mas as imagens tem vezes que carrega as duas e tem hora que carrega somente uma. pelo log esta chamando o duas vezes o doInBackground que esta correto porém o onPostExecute não é chamado em algumas vezes é normal isso? Será intermitência da rede??

segue a minha task

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap>{
final AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
 
@Override
protected Bitmap doInBackground(String... params) {
String urlDisplay = params[0];
Bitmap bitmap = null;
final HttpGet getRequest = new HttpGet(urlDisplay);
//runningTask = true;
try{
Log.i(ConstantsUtil.LOG_ID, "Obtendo imagem " + urlDisplay);
HttpResponse response = client.execute(getRequest);
final int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK){
Log.e(ConstantsUtil.LOG_ID, "Erro no response codigo " + statusCode);
return null;
}
final HttpEntity entity = response.getEntity();
if (entity != null){
InputStream inputStream = null;
try{
inputStream = entity.getContent();
bitmap = BitmapFactory.decodeStream(inputStream);
}finally{
if (inputStream != null){
inputStream.close();
}
entity.consumeContent();
}
}
}catch (Exception e) {
Log.e(ConstantsUtil.LOG_ID, e == null?"Erro inexperado ao obter imagem":e.getMessage());
getRequest.abort();
return null;
}finally{
if(client != null){
client.close();
}
}
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
//if (isCancelled()) image = null;
if (result != null){
Log.i(ConstantsUtil.LOG_ID, "Successfully loaded image");
image = result;
if(adStoreAdapter != null){
adStoreAdapter.notifyDataSetChanged();
}
}else{
Log.e(ConstantsUtil.LOG_ID, "Falha ao carregar a imagem");
}
}
}



--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário