簡體   English   中英

Android Jsoup Connect凍結線程

[英]Android Jsoup connect freezes thread

我嘗試使用Json.connect加載數據:

Document doc = Jsoup.connect("http://google.com").timeout(2000).ignoreContentType(true).get();

它使我的asynctask線程凍結了很長時間(似乎不會停止)。 我也嘗試刪除“ timeout(2000)”,使用另一個URL,刪除“ ignoreContentType(true)”,但是問題一次又一次出現。 我使用的是android studio 2.0; 在我的build.gradle中,我使用compile 'org.jsoup:jsoup:1.8.3' 我也用try { ... } catch (Throwable t) {}包圍了這個塊,但是它永遠不會捕獲塊。 怎么了

此代碼僅用於測試此類,永遠不會訪問Log.de.printStackTrace() Android監視器顯示永久電話的cpu加載。

class WebLoader extends AsyncTask<String, Void, String> {
        private WhatToLoad whatToLoad;

    public WebLoader(WhatToLoad whatToLoad) {
        this.whatToLoad = whatToLoad;
    }

    @Override
    protected String doInBackground(String... params) {
        return downloadUrl(params[0]);
    }

    protected void onPostExecute(InputStream stream) {
        onWebResult(whatToLoad, stream);
    }

}

private static String downloadUrl(String myurl) {
        try {
            Document doc = Jsoup.connect("http://google.com").timeout(2000).ignoreContentType(true).get();
            Log.d("jsoup1", doc.toString());
            return doc.toString();

        } catch (Throwable e) {
            e.printStackTrace();
        }
        return null;
    }

編輯:當我從官方網站運行示例時,也會發生相同的問題:

Document doc = Jsoup.parse("<html><head><title>First parse</title></head>"
                + "<body><p>Parsed HTML into a doc.</p></body></html>");
        Element body = doc.body();

日志:

04-09 17:56:53.810 32615-32629/com.abc.def W/art: Suspending all threads took: 6.560ms
04-09 17:57:32.890 32615-32629/com.abc.def  W/art: Suspending all threads took: 5.075ms
04-09 17:58:23.520 32615-32629/com.abc.def  W/art: Suspending all threads took: 6.361ms
04-09 17:58:28.530 32615-32629/com.abc.def W/art: Suspending all threads took: 5.165ms
04-09 17:58:30.040 32615-32629/com.abc.def W/art: Suspending all threads took: 5.637ms
04-09 17:58:30.540 32615-32629/com.abc.def W/art: Suspending all threads took: 5.995ms
04-09 17:59:46.210 32615-32629/com.abc.def W/art: Suspending all threads took: 5.289ms

我終於解決了。 當您在上設置斷點時,似乎在android studio中存在問題

Jsoup.parse

要么

Jsoup.connect

方法。 當我在這些方法之后設置斷點時,它們的運行速度非常快,但是,如果我在這些方法之一上設置斷點,則調試器會在此方法之前和按resume之后停止運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM