如何在这个使用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;
}
}
答案 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
)同时检查AsyncTask documentation,它没有jsoup示例,但包含了让它运行所需的一切。