基本网络连接
GitHub 地址:关于联网显示图片的应用
前期准备
fragment + recyclerView 实现基本框架,这就不说了,前面有介绍过,没总结过 http 与后台的知识
设置网络类
- 创建一个类,并实现两个方法分别用来获取数据的字节流并把字节流转化为字符串
|
|
获取网络使用权限
|
|
使用 AsyncTask 在后台线程上运行代码
我们前面都是使用的 UI 线程,当进行网络访问的等操作,如果还在 UI 线程上,会出现程序不响应,是否结束任务的提示,所以使用 AsyncTask 工具类创建一个后台线程处理网络请求
|
|
启动后台线程
|
|
线程与主线程
网络连接需要时间。Web 服务器也需要时间响应请求,文件下载则需要更长的时间。Android 禁止任何主线程网络连接行为。如果 Android 也会抛出 NetworkOnMainThreadException 异常
线程:单一执行序列,单个线程代码会逐步执行。
Android 应用运行从主线程开始,但它并不是线程那样的预定执行序列。相反,它是一个无限循环的运行状态,等待用户或者系统触发的事件的发生。事件触发后,主线程便负责执行代码.
从 Flickr 获取 JSON 数据
前面的网站虽然通过 web 可以进行访问,但是并没有返回我们可以使用时信息,我们通过 Flickr 提供的 JSON API 获取我们想要的信息,并显示到我们的应用上
下面是我自己建立的,这个过程耗费我两天,因为flickr 创建的 key 一直不生效,最后发现是权限为私有,打开为公有还要上传照片、添加标签、添加 url 最后才能修改
构建 url
重新修改后台访问网络连接
Console 台显示 json 字符串