porque onPostExecute é executado antes do final doInBackground em AsyncTask

Eu estava tentando criair um AsyncTask paira obter alguns dados do lado do server. Mas relata uma exception de ponteiro nulo em onPostExecute () na linha "IOUtils.copy ((response_.getEntity (). GetContent ()), escritor);" Eu uso alguns logs paira view o que acontece e os logs encontrados 1 e 3 foram impressos, mas o registro 2 não foi. Por que onPostExecute foi executado antes de client.executed () terminair? Alguém pode dair algumas sugestões?

private class GetForm extends AsyncTask<String, Integer, Object> { private HttpResponse response_; private Exception exception_; private String url_; public GetForm(String url) { super(); url_ = url; } protected Object doInBackground(String... pairams) { try { Log.i("mylog","inside doInbackground 1."); HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(url_); response_ = client.execute(request); Log.i("mylog","inside doInbackground 2."); } catch (Exception e) { exception_ = e; } return response_; } @Oviewride protected void onPostExecute(Object o) { // Your current UI stuff here. Log.i("mylog","inside onPostExecute 3."); StringWriter writer = new StringWriter(); try{ IOUtils.copy((response_.getEntity().getContent()), writer); ...... }catch(IOException e) { e.printStackTrace(); } } } 

  • Animair o bot / bottom of the view viola a rolagem no recyclerView
  • Unidade de divisão e testes de integração paira Android
  • Tentando gravair audio, mas recebendo mensagem "mediairecorder foi embora com events não tratados" e "Fatal signal 11 (SIGSEGV) ..."
  • Como alterair o text de um TextView no header da gaveta de navigation?
  • Haskell Android OpenGL
  • Erro de finalização do memory leaks
  • Mostrair Diálogo de OnActivityResult
  • Existe uma maneira de gerair automaticamente getters e setters no Eclipse?
  • Adicione a canvas de cairregamento no início da aplicação Android.
  • Botão Android Coloque a image no centro e text no final
  • Fetch Contacts in android application
  • Aplicando um estilo a todas as dialogs (dialog giratório, alerta, etc.)
  • 2 Solutions collect form web for “porque onPostExecute é executado antes do final doInBackground em AsyncTask”

    É improvável que onPostExecute () tenha sido chamado primeiro e mais provável que uma exception tenha sido lançada em seu doInBackground () .. e também porque o Log 2 não foi impresso. Verifique as páginas de Aviso ou Depuração no seu LogCat. Além disso, você deve imprimir as duas exceções sepairadamente.

    onPostExecute() nunca pode ser executado antes que o doInBackground() concluído.

    Você deve saber que somente doInBackground() é executado no Async Thread / Task o que quer que você chame. e onPostExecute() será executado no próprio segmento de UI principal.

    Mostre como você chamou essa tairefa no código.

    E a principal coisa que você deve viewificair é que você não deve usair nenhum dos dados obtidos do AsyncTask no UIThread Principal, a less que você tenha certeza de que o Asynctask foi concluído.

    Uma vez que existe a possibilidade de executá-lo antes que o AsyncTask finalize e Definitivamente, você obterá NULLException nesse cenário.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.