安卓 | 使用AsyncTask进行Socket编程

AsyncTask是什么

AsyncTask 允许对用户界面执行异步操作。 它会先阻塞工作线程中的操作,然后在 UI 线程中发布结果,而无需您亲自处理线程和/或处理程序

其实AsyncTask就是安卓帮我们对异步处理机制进行了封装的一个类,方便我们进行异步操作。

1、可以使用泛型指定参数类型、进度值和任务最终值
2、方法 doInBackground() 会在工作线程上自动执行
3、onPreExecute()、onPostExecute() 和 onProgressUpdate() 均在 UI 线程中调用
4、doInBackground() 返回的值将发送到 onPostExecute()
5、您可以随时在 doInBackground() 中调用publishProgress(),以在 UI 线程中执行 onProgressUpdate()
6、您可以随时取消任何线程中的任务

必须实现doInBackground(),此处代码不在主线程(UI线程)运行,参数类型为泛型参数的第一个(另外注意参数是可变参数):

private class ClientTask extends AsyncTask<String,Void,String>
{
   
    @Override
    protected String doInBackground(String... params) {

    }
}

Socket是什么

Socket是网络连接时使用的接口。有服务器端和客户机端:ServerSocket用于服务器端,Socket是客户端

服务器端:

① 创建ServerSocket对象,绑定监听端口
② 通过accept()方法监听客户端请求(accept是阻塞式的
③ accept获得一个连接(socket实例)后,可以通过输入流读取客户端发送的信 息,通过输出流向客户端发送乡音信息
④通常用死循环保证一直在线

客户端

① 创建Socket对象,指明需要连接的服务器的地址端口号
② 可以通过输出流想服务器端发送信息,通过输入流获取服务器响应的信息

简单的实例

下面来做一个简单的实例,首先构建一个服务器,它只接收来自客户端的信息并把它显示在textView当中

服务器端

import android.os.AsyncTask;
import android.os.Bu
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值