参考资料:Android中HttpURLConnection使用详解_小鹿迷鹿的博客-优快云博客_android httpurlconnection
信息流逻辑:
inputStream(信息流)---->inputStreamReader(流载体)---->ButteredReader(将信息流读取)---->通过(String)Line---->StringBuilder(灵活字符串类)
InputStream inputStream=connection.getInputStream();//获取URL对应的信息
BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder=new StringBuilder();
String Line;
while ((Line=reader.readLine())!=null){
stringBuilder.append(Line);
}
URL读取逻辑
URL url=new URL("http://www.baidu.com"); //指定URL
HttpURLConnection connection=(HttpURLConnection)url.openConnection();//为HURLC类指定对应的URL
connection.setRequestMethod("GET");//发送请求
总逻辑:
onClicked{new Tread(new Runable(){@Override run()}).start()}
onClicked中实现了Tread.start()//线程启动
线程需要一个new Runable类实例化
Runable重写一个run方法
run方法实现以下几个任务
- 实现程序与URL的连接
- 实现URL资源获取
- URL资源解析转化可以展现的资源,例如StringBulider
- 展示这个资源
例子:开发一款基于有道翻译的极简翻译APP
21/09/2022 00:47
第一阶段:总体设计阶段
连接远程API,需要实现android studio联网问题,我选用了资料中方法3.
参考资料【Android】Android Studio虚拟机不能联网_-LDL的博客-优快云博客_android studio虚拟机怎么联网
有的时候3G连不上,可以开启飞行模式达到重启的作用。
上述使用java的多线程技术实现URL连接,但是在安卓中我们完全可以使用AsyncTask的模式来实现
参考资料:详解Android中AsyncTask的使用_liuhe688的博客-优快云博客_asynctask,
连接API主要在Activity中后台运行,引入AsyncTask<String, Integer, String>的概念
但是其实AsyncTask中的数据类型在这个例子中并不重要。
借这个机会也更加系统的学习了这一后台方式。(上次的学习这一知识点时一直没有时间练习)
对于方法: doInBackground(String… params)来说,它用于处理主要事务
在这个需求下指的是API的连接,JSON对象的解析。
但是注意不能犹豫更新系统UI
系统UI的重置更新要在onPostExecute(String result)方法解决。