Android(安卓)studio爬取网页
16lz
2022-06-11
准备阶段
我们准备在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来进行信息的传递,保证线程安全。
经典方法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学习文档
更多相关文章
- Android(安卓)AsyncTask源码简单分析
- cocos2d-x学习之旅(四):1.4 使用eclipse编译Android(安卓)C++
- Android开发之SurfaceView
- Android学习之使用RadioGroup与RadioButton实现单选效果
- Android学习笔记(29):搜索框SearchView
- Android新线程中更新主线程UI中的View方法汇总
- AOSP和Chromium的Android(安卓)WebViewTest
- Android(安卓)更新UI的两种方法——handler和runOnUiThread()
- 我的Android进阶之旅------>Android百度地图定位SDK功能学习