我有应用程序搜索页面并获得指定数量的链接。 每个链接由单独的线程检索。 这个简单的代码执行此操作:
public class GetLinkThread implements Runnable {
public int page;
public GetLinkThread(int page) {
this.page = page;
}
@Override
public void run() {
try {
Parser.parseAndAddLinkToSet(page);//this method get links from sites and save to set
} catch (IOException e) {
e.printStackTrace();
}
}
}
parseAndAddLinkToSet(int page)
方法是String root = "www.example.com/" + page;
,因此我只发送要抓取链接的页码。
我跑了这个:
ExecutorService executorService = Executors.newCachedThreadPool();
for(int i = 1 ; i < 4 ; i++){//in this case I run 3 threads
executorService.execute(new GetLinkThread(i));
}
executorService.shutdown();
executorService.awaitTermination(1, TimeUnit.HOURS);
我想制作进度条,下载链接时会显示给定线程当前正在下载的链接。 我可以制作progressBar,但我不知道如何使progressBar在后台和另一个线程中运行。
所以我的问题是,如何在我的应用程序中添加progressBar?在我抓取页面并显示当前页面时运行的ProgressBar?