关于联网的一丢丢知识

1,线程(Thread)

是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

2,多线程(MultiThreading)

是指从软件或者硬件上实现多个线程并发执行的技术。
当一个应用第一次启动时,Android会同时启动一个对应的主线程(MainThread),主线程主要负责处理与UI相关的事件(用户的按钮点击事件,用户手势事件以及屏幕绘图事件等),并把相关的事件分发到对应的组件进行处理,所以主线程通常又被叫做UI线程,

3,在开发Android 应用时必须遵守单线程模型的原则:

不要阻塞UI线程
确保只在UI线程中访问Android Ul工具包如果在非UI线程中直接操作UI控件,会抛出android.view.ViewRoot$CalledFromWrongThreadException的异常,这与普通的java程序不同。
Message:消息,理解为线程间交流的信息,包含消息ID、消息处理对象和处理的数据等,统一放到Message Queue,最终由Handler处理。
Handler:非UI线程与UI线程通信的接口,消息处理者,专门负责Message的发送和处理:

1) WebView

在这里插入图片描述

布局中写:

在这里插入图片描述

MainActivity里:

在这里插入图片描述PS:运行前保持联网

2)使用HTTP协议访问网络:

原理
客户端向服务器发出请求,服务器接收请求后返回数据给客户端,客户端再对数据进行解析处理。
WebView在后台已处理了发送HTTP请求,接收服务响应,解析返回数据,展示
1))手动发送HTTP请求(HttpURLConnection):

MainActivity中:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Activity中:
在这里插入图片描述
点击后:
在这里插入图片描述

若向服务器提交数据:

将请求方法改成POST,并在获取输入流之前把要提交的数据写出(每条消息以键值对形式存在,数据和字符间用‘&’隔开)
eg(传输用户名和密码):

connection.setRequestMethod("POST");
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
out.writeBytes("username = admin & password = 123456");

3)OKHTTP

1))添加依赖
在AndroidStudio中使用不需要下载jar包,直接添加依赖即可:

implementation 'com.squareup.okhttp3:okhttp:4.9.0' //Android 4.1的依赖

2))添加网络权限(在AndroidManifest里)
在这里插入图片描述在MainActivity中:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在布局中:
在这里插入图片描述
PS:ScrollView:视图的滚动过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值