android开发多线程编程,Android多线程编程
Handler
AsyncTask
HTTPURLConnection使用
get方式使用
private void initData() {
new Thread(() -> {
try {
//创建远程url连接对象
URL url = new URL(smartUrl);
//通过远程url对象打开一个连接,强制转换为HttpUrlConnection类型
HttpURLConnection con = (HttpURLConnection) url.openConnection();
//获取结果码
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
//通过连接对象获取一个输入流,向远程读取
InputStream inputStream = con.getInputStream();
//封装输入流is,并指定字符集
InputStreamReader ist = new InputStreamReader(inputStream);
char[] chars = new char[1024];
int len = 0;
StringBuffer sb = new StringBuffer();
while ((len = ist.read(chars)) != -1) {
sb.append(chars, 0, len);
}
String json = sb.toString();
Message message = Message.obtain();
message.what = 1;
message.obj = json;
handler.sendMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
Handler handler = new Handler() {
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 1:
String json = (String) msg.obj;
SmartBean smartBean = new Gson().fromJson(json, SmartBean.class);
List results = smartBean.getResults();
ArrayList list = new ArrayList<>();
list.addAll(results);
SmartAdapter adapter = new SmartAdapter(MainActivity.this, list);
lv_smart.setAdapter(adapter);
break;
}
}
};
post方式使用
private void login() {
new Thread(() -> {
try {
//登录url
String loginUrl = "https://www.wanandroid.com/user/login";
// 创建远程url连接对象
URL url = new URL(loginUrl);
//通过远程url对象打开一个连接,强制转换为HttpUrlConnection类型
HttpURLConnection con = (HttpURLConnection) url.openConnection();
//设置连接方式:POST
con.setRequestMethod("POST");
//设置超时
con.setConnectTimeout(10000);
con.setReadTimeout(10000);
//设置是否向httpUrlConnection输出,设置是否从httpUrlConnection读入,此外发送post请求必须设置这两个
//setDoOutput默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
con.setDoOutput(true);
//setDoInput默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
con.setDoInput(true);
//设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
//通过连接对象获取一个输出流
OutputStream os = con.getOutputStream();
//通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
String param = "username=anfly&password=123456";
os.write(param.getBytes());
//获取结果码
int responseCode = con.getResponseCode();
if (responseCode == 200) {
//通过连接对象获取一个输入流,向远程读取
InputStream is = con.getInputStream();
//封装输入流is,并指定字符集
InputStreamReader isr = new InputStreamReader(is);
char[] chars = new char[1024];
StringBuffer sb = new StringBuffer();
int len = 0;
while ((len = isr.read(chars)) != -1) {
sb.append(chars, 0, len);
}
//sb转为string
String json = sb.toString();
Log.e("TAG", "json=" + json);
//关流
is.close();
isr.close();
}
//关流
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
android开发多线程编程,Android多线程编程相关推荐
- android 网络编程实现,Android开发使用HttpURLConnection进行网络编程详解【附源码下载】...
本文实例讲述了Android开发使用HttpURLConnection进行网络编程.分享给大家供大家参考,具体如下: --HttpURLConnection URLConnection已经可以非常方便 ...
- 全网最全Android开发工具,Android开发框架大全
涵盖Android方方面面的技术, 目前保持更新. 时刻与Android开发流行前沿同步. 目录 一.工具 Android开发工具 在线工具宝典大全 二.框架 *缓存框架* DiskLruCache ...
- Android 开发工具集合 - (Android Dev Tools)
收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android设计规范,免费的设计素材等. 欢迎大家推荐自己在Android开发过程中用的好用的工具. ...
- 视频教程-快速入门Android开发 视频 教程 android studio-Android
快速入门Android开发 视频 教程 android studio 任苹蜻,爱学啊创始人 & CEO,曾就职于某二车手公司担任Android工程师后离职创办爱学啊,我们的宗旨是:人生苦短,我 ...
- 老罗Android开发视频教程( android解析json数据 )4集集合
老罗Android开发视频教程( android解析json数据 )4集集合 老罗Android开发视频教程( android解析json数据 ) 第一集android解析json数据 http:// ...
- [android开发必备]Android开发者社区汇总
[android开发必备]Android开发者社区汇总 经常收到很多人问做android开发去哪个社区,每次都回答的零零碎碎的很比系统,今天统一整理下,把截至目前为止有价值的android开发社区汇总 ...
- Android开发工具视频Android 12(S)准备
Android开发工具视频Android 12(S)准备 适配步骤 下载最新的Android studio工具,点我到官网下载最新的吧! 最新版的studio规定jdk使用必须至少11,所以请移步下载 ...
- Android 开发工具类 27_多线程下载大文件
多线程下载大文件时序图 FileDownloader.java 1 package com.wangjialin.internet.service.downloader; 2 3 import jav ...
- android开发按钮颜色,Android编程实现简单设置按钮颜色的方法
本文实例讲述了Android编程实现简单设置按钮颜色的方法.分享给大家供大家参考,具体如下: 1.工程目录 a.在res目录-新建drawble文件夹放入自定义图片 2.main.xml androi ...
- Android开发学习之路--网络编程之初体验
一般手机都是需要上网的,一般我们的浏览器就是个webview.这里简单实现下下功能,先编写Android的layout布局: <?xml version="1.0" enco ...
最新文章
- 图像空间变换--imtransform
- MySQL数据库分组查询group by(having)
- android按钮随机数,Android随机数
- arcgiss如何在空白点图层加入坐标_连载 | 21 QGIS工程文件属性设置(2)——坐标参照系、变换、默认样式、数据源、关系和变量...
- ElasticSearch 深入理解 三:集群部署设计
- 关于 通过http请求 无法访问Linux下的ftp服务的解决办法!
- 产品经理经验谈:从产品经理、用户、产品的角度重新认知产品运营
- Android Telephony分析(七) ---- 接口扩展(异步转同步)
- 26.python常用端口号
- 手机内部零件名称图解_旧手机回收后都干嘛了?
- DeadXSpace项目进度
- 报错ValueError: check_hostname requires server_hostname
- spring aop源码分析总结
- 3.剑指Offer --- 高质量的代码
- idea 中 配置tomcat 启动 jsp项目
- 适合笔记本电脑看Kindle MOBI 电子书的软件
- asp.net 设置div带颜色透明
- 【USACO题库】5.2.1 Snail Trails蜗牛的旅行
- 你的登录接口真的安全吗?
- 【VUE】在vue中使用google地图
热门文章
- 【数据显示:比特币单日交易费用是BCH和BSV一年交易费用的4倍】
- BTC震荡调整后的新一轮爆发将要开启,BCH姿态逐渐明显
- BCH踏着优化升级路线,在数字货币界声名鹊起
- Java并发编程之线程状态总结
- 手挽手带你学React:四档(上)一步一步学会react-redux (自己写个Redux)
- 区块链开发公司能做什么?对企业未来市场有何帮助?
- 数组的遍历你都会用了,那Promise版本的呢
- iOS多线程:『NSOperation、NSOperationQueue』详尽总结
- ASP.NET弹出模态对话框
- ***如何优雅的选择字体(font-family)