GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Jsoup "trava" APENAS no Android

Olá,
Estou tentando fazer um app que acessa uma página html e extrai informações dela.
A biblioteca que escolhi foi a Jsoup.
Só que o código “trava” no Android, o método simplesmente não retorna.
Eu testei praticamente o mesmo código em um app desktop e funciona.

O método que não retorna é o “getConteudoDaPagina()” da classe Crawler.
Sei disso porque coloquei dois prints: um antes, outro depois. Printa apenas o primeiro.

Adicionei a permissão INTERNET no Manifest.

Códigos:
MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        AsyncTaskLoader<String> teste = new AsyncTaskLoader<String>(this) {
            @Nullable
            @Override
            public String loadInBackground() {
                return new Crawler().getResultado();
            }

        };
        teste.forceLoad();

        teste.registerListener(1, new Loader.OnLoadCompleteListener<String>() {
            @Override
            public void onLoadComplete(@NonNull Loader<String> loader, @Nullable String data) {
                TextView tv = MainActivity.this.findViewById(R.id.resultado);
                tv.setText(data.toString());
            }
        });
    }
}

Crawler.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Crawler {
    private final static String ENDERECO = "http://google.com";

    private Document getConteudoDaPagina() throws IOException {
        return Jsoup.connect(ENDERECO).get();
    }

    public String getResultado() {
      try {
            Document dom = getConteudoDaPagina();
            return dom.title();
      } catch (IOException ignore) {
      }
     return null;
    }
1 Curtida

O problema é o emulador do Android Studio. Funcionou normalmente no meu celular.

1 Curtida
//