美文网首页
多线程及网络编程

多线程及网络编程

作者: 方白羽lw | 来源:发表于2019-12-08 18:57 被阅读0次

1.理解Android 的多线程的基本概念

进程:运行中的应用程序称为进程,拥有系统资源(cpu、内存)

线程:进程中的一段代码,一个进程中可以有多段代码。本身不拥有资源(共享所在进程的资源)
在java中,程序入口被自动创建为主线程,在主线程中可以创建多个子线程。
多线程: 在同一应用程序中有多个功能流同时执行

2.掌握 Android 的主线程与子线程交互的常用方法

1、handler

2、Activity.runOnUIThread(Runnable)

3、View.Post(Runnable)

4、View.PostDelayed(Runnabe,long)

5、AsyncTask

3.理解 Handler 的异步消息机制的实现原理

Handler 工作流程基本包括 Handler、Looper、Message、MessageQueue 四个部分。但我们在日常开发中,经常都只会用到 Handler 和 Message 两个类。Message 负责消息的搭载,里面有个 target 用于标记消息,obj 用于存放内容,Handler 负责消息的分发和处理。

4.掌握 AsyncTask 类的各个方法的定义及作用

onPreExecute://在UI线程调用,在doInBackground之前执行,显示加载框、AsyncTask的准备工作
doInBackground://在后台线程调用,执行后台任务的方法
onProgressUpdate://在UI线程调用,显示操作进度
onPostExecute:////在UI线程调用,在doInBackground之后执行 ,隐藏加载框、任务完成,通知主线程结果

5.掌握 Handler、AsyncTask 的开发流程

handler

  • 首先new一个Handler对象
  • 需要更新UI的子线程代码处new一个Message对象与主线程通信
  • 当Handler接收到Message之后,通过if语句判断what值
  • 执行我们刷新UI的逻辑

AsyncTask
一个异步任务的执行一般包括以下几个步骤:

  • execute,执行一个异步任务,触发异步任务的执行。
  • onPreExecute,在执行后台任务前对 UI做一些
    标记。
  • doInBackground,在 onPreExecute()完成后立即执行,用于执行较为费时的操作。
  • onProgressUpdate在调用,此方法被执行,直接将进度信息更新到UI组件上。
  • onPostExecute,当后台操作结束时,此方法将会被调用,计算结果将做为参数传递到此方法中,直接将结果显示到 UI 组件上。

6.掌握 Http 协议的基本概念

请求由三部分组成,分别是:请求行、消息报头、请求正文
HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,

常用的HTTP方法
GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器。
POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。

7.掌握 HttpURLConnection 访问网络的开发流程

  • 准备HttpURLConnection请求地址url。
  • 准备请求数据并拼接到请示url上。
  • 如果请求url中请求参数存在中文的情况,要先将url进行encode操作
  • 创建连接:HttpURLConnection connection = (HttpURLConnection)realUrl.openConnection();
  • 设置此时请求的requestHeader请求头信息
  • 进行请求连接:connection.connect();
  • 创建一个读取响应信息的一个输入流类BufferedReader

8. 掌握 OkHttp、Voiley 或 Retrofit 等一种网络通讯框架的使用方法

Retrofit网络通讯框架

  • 添加Retrofit库的依赖
  • 创建 接收服务器返回数据 的类
  • 创建 用于描述网络请求 的接口
  • 创建 Retrofit 实例
  • 创建 网络请求接口实例 并 配置网络请求参数
  • 发送网络请求(异步 / 同步),封装了 数据转换、线程切换的操作
  • 处理服务器返回的数据

相关文章

网友评论

      本文标题:多线程及网络编程

      本文链接:https://www.haomeiwen.com/subject/qrnmgctx.html