gpt4 book ai didi

android - 为什么Jsoup.connect()。get()在我的Android应用程序的线程内不起作用?

转载 作者:行者123 更新时间:2023-12-03 13:12:22 26 4
gpt4 key购买 nike

单击按钮后,我正在使用android应用程序中的Jsoup进行网络抓取。为此,我创建了自己的线程。问题是Jsoup.connect()。get()之后的行未得到执行。我无法弄清楚其背后的原因。这是我的代码:-

but1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Log.e("Check","Inside button click!!");
//obj=new Helper(et1.getText().toString(),counter);
counter++;
//new abc().execute(et1.getText().toString());

Thread t0=new Thread(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
try{k=0;
Log.e("check","inside thread 0");
for(i=1;i<=5;i++){
Log.e("check", "inside loop");
String url1="some url";
url1=url1+et1.getText().toString();
url1=url1+"xyz";
Log.e("Check", "Scanned url");
org.jsoup.nodes.Document rec=Jsoup.connect(url1).get();
//Thread.sleep(5000);
Log.e("check", "After jsoup");
Elements names=rec.getElementsByTag("img");
for(;k<names.size();k++){
Test.arr[0][k]=names.get(k).attr("alt");

}


}
}catch(Exception E){}
}
});
t0.start();


et3.setText(arr[0][3]);
}

});

最佳答案

您不应该直接在 Activity 或片段上或在Android上直接使用Thread类,而应使用AsyncTaskHanlder

带有AsyncTask的示例:

button.setOnClickListener(new View.OnClickListener() 
{
@Override
public void onClick(View arg0)
{
YourTask task = new YourTask();
task.execute();
}
});

基本上,您的问题是您没有将数据从已初始化的线程回发到主线程。

关于android - 为什么Jsoup.connect()。get()在我的Android应用程序的线程内不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28159952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com