jsoup解析器中的AsyncTasc?

时间:2015-01-09 23:11:01

标签: android html parsing android-asynctask jsoup

如何在这个使用JSoup解析器的示例中应用AsyncTasc?我尝试使用Thread,但这不适用于Android版本4.x.x.也许有人知道,下面的例子如何添加AsyncTasc? 谢谢你的进步。

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class JSoupStudyActivity extends Activity {

// blog url
static final String BLOG_URL = "http://xjaphx.wordpress.com/";

@Override
public void onCreate(Bundle savedInstanceState) {
    // set layout view
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // process
    try {
        ((TextView)findViewById(R.id.tv)).setText(getBlogStats());
    } catch (Exception ex) {
        ((TextView)findViewById(R.id.tv)).setText("Error");
    }
}

protected String getBlogStats() throws Exception {
    String result = "";
    // get html document structure
    Document document = Jsoup.connect(BLOG_URL).get();
    // selector query
    Elements nodeBlogStats = document.select("div#blog-stats ul li");
    // check results
    if(nodeBlogStats.size() > 0) {
        // get value
        result = nodeBlogStats.get(0).text();
    }

    // return
    return result;
  }
}

1 个答案:

答案 0 :(得分:0)

这是一个简短的例子:

public class JSoupStudyTask extends AsyncTask<URL, Integer, Long> // Check doc for explanation
{
     @Override
     protected Long doInBackground(URL... urls)
     {
          // Do your html parsing here
          // return your result or whatever
     }
}

这里有一个很好的示例代码:

同时检查AsyncTask documentation,它没有jsoup示例,但包含了让它运行所需的一切。