准备阶段

我们准备在Android studio 中使用Jsoup爬取某个网页,并将其标题显示在app中。

引入Jsoup

在 build.gradle(Mouble:app)中写入

implementation 'org.jsoup:jsoup:1.9.2'

设置app允许网络访问

在mainifest文件中

//在上一行  <uses-permission android:name="android.permission.INTERNET"/>//在application中android:usesCleartextTraffic="true"

handler和多线程的学习

网络连接可能很耗时,因此需要把网络连接放到子线程中进行

对app各个控件的更改必须放在UI线程中,不能在子线程中直接更改,所以要使用Handler来进行信息的传递,保证线程安全。
Android studio爬取网页_第1张图片

经典方法thread加handler message

定义子线程并在子线程中提交信息

 Thread thread= new Thread(new Runnable() {            @Override            public void run() {                //耗时操作                Message msg=handler.obtainMessage();                try {                    Document doc=Jsoup.connect("https://www.52bqg.com/").get();                    title =doc.title();                    msg.obj=title;                }catch (IOException e){                    ex=e.toString();                    msg.obj=ex;                }                handler.sendMessage(msg);            }        });

在handler方法中获得信息并更新控件

private Handler handler=new Handler(){        @Override        public void handleMessage(@NonNull Message msg) {            super.handleMessage(msg);            if (msg.obj!=null)            textView.setText(msg.obj.toString());        }    };

jsoup的学习和使用

jsoup学习文档

更多相关文章

  1. android播放网络音频
  2. Android常用控件之悬浮窗(Service实现)
  3. Android 时间显示控件 TextClock
  4. 【Android 界面效果6】Android 控件之ImageSwitcher图片切换器
  5. 【摘录】Android的线程使用来更新UI----Thread、Handler、Looper
  6. Android仿人人客户端(v5.7.1)——网络模块时序图
  7. Android报表控件achartengine介绍(二)

随机推荐

  1. 【Nest教程】基于Nest初始化Web API项目
  2. Vue项目中Axios的简单封装
  3. 【Nest教程】Nest项目部署在ubuntu服务器
  4. 讲一讲Vue+Ant Design表单验证
  5. 【Nest教程】Nest项目配置http和https
  6. 【Nest教程】实现一个简单的用户增删改查
  7. Vue3动态添加路由及生成菜单
  8. 通过设置createFromIconfontCN使Vue3项目
  9. 对比Vue2中Options API 和 Vue3中Composi
  10. 在Vue3中使用Provide / Inject