不过可以看到创建Handler的时候使用了Looper对象,所以我们就可以改进一下其构造函数,添加一个Looper参数(同步修改子类),这样所有的回调就都会在Looper所在线程执行,这样我们只需要开启一个HandlerThread就行了。但这样和Looper为空时一样有一个弊端,如果要更新UI操作的话,还需要向一个主线程的Handler发送消息让UI更新。还有第二个弊端,所有回调都在同一个HandlerThread中执行,如果一个处理耗时太久会阻塞后面的请求结果处理,如果只是简单地写个数据库影响应该不大,如果真耗时太久,为这个耗时处理再开个线程吧。
android-async-http开源项目可以是我们轻松的获取网络数据或者向服务器发送数据,使用起来非常简单,关于android-async-http开源项目的介绍内容来自于官方:http://loopj.com/android-async-http/.下面我对此主页上内容进行大体上的翻译,希望能够对你理解android-async-http开源项目有所帮助
1.1 Overview(概况)
An asynchronous callback-based Http client for Android built on top of Apache’s HttpClient libraries. All requests are made outside of your app’s main UI thread, but any callback logic will be executed on the same thread as the callback was created using Android’s Handler message passing.
译文:
异步基于回调的Http客户端为Android构建,是基于Apache HttpClient库的。所有的请求都是位于应用程序主线程 UI 之外,但任何回调逻辑将相同的线程上执行回调,使用Android的处理程序创建消息传递。
1.2 Features(特征)
-
Make asynchronous HTTP requests, handle responses in anonymous callbacks
-
进行异步HTTP请求,处理响应在匿名回调中完成
-
HTTP requests happen outside the UI thread
-
HTTP请求发生在UI线程之外
-
Requests use a threadpool to cap concurrent resource usage
-
请求使用threadpool,限制并发资源使用情况
-
GET/POST params builder (RequestParams)
-
GET / POST参数构建使用(RequestParams)
-
Multipart file uploads with no additional third party libraries
-
Multipart 文件上传,没有额外的第三方库
-
Tiny size overhead to your application, only 25kb for everything
-
在你的应用程序上利用很小的开销,仅仅25 kb就可以做一切
-
Automatic smart request retries optimized for spotty mobile connections
-
自动智能请求重试,优化了质量不一的移动连接
-
Automatic gzip response decoding support for super-fast requests
-
自动解码支持gzip反应速度超快的请求
-
Binary file (images etc) downloading with
BinaryHttpResponseHandler
-
二进制文件(图片等)的下载,使用BinaryHttpResponseHandler
-
Built-in response parsing into JSON with
JsonHttpResponseHandler
-
内置响应解析成JSON,使用JsonHttpResponseHandler
-
Persistent cookie store, saves cookies into your app’s SharedPreferences
-
持久化cookie存储,保存cookie到你的应用程序的SharedPreferences
- Installation & Basic Usage( 安装和基本用法)
Download the latest .jar file from github and place it in your Android app’s libs/
folder.
从github上下载最新的最新的jar文件.并将其放置在你的Android应用程序的libs /文件夹.
2.1下载方式:
1.从http://loopj.com/android-async-http/的页面下载
点击DownLoad即可下载最新的jar文件
2.从https://github.com/loopj/android-async-http的页面下载
找到DownLoad ZIP进行下载文件,解压后的目录如下
examples:里面有简单的例子
library:里面存放的是android-async-http开源项目的源码(方法一:可以把library\src\main\java文件下面的文件拷贝到,你应用的src下也可以直接使用)
releases:里面存放的是各个版本的jar文件,(方法二:只需把最新的jar文件拷贝到你应用的libs目录下即可.)
samples:里面存放的也是例子(可供参考)
备注:方法一和方法二只能采用其中之一,建议采用方法二
2.2使用方法
Import the http package.
import com.loopj.android.http.*;
Create a new AsyncHttpClient
instance and make a request:
AsyncHttpClient client = new AsyncHttpClient();
client.get(“http://www.google.com”, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
System.out.println(response);
}
});
Adding GET/POST Parameters with RequestParams
The RequestParams
class is used to add optional GET or POST parameters to your requests.RequestParams
can be built and constructed in various ways:
Create empty RequestParams
and immediately add some parameters:
RequestParams params = new RequestParams();
params.put(“key”, “value”);
params.put(“more”, “data”);
Create RequestParams
for a single parameter:
RequestParams params = new RequestParams(“single”, “value”);
Create RequestParams
from an existing Map
of key/value strings:
HashMap<String, String> paramMap = new HashMap<String, String>();
paramMap.put(“key”, “value”);
RequestParams params = new RequestParams(paramMap);
See the RequestParams Javadoc for more information.
Add an InputStream
to the RequestParams
to upload:
InputStream myInputStream = blah;
RequestParams params = new RequestParams();
params.put(“secret_passwords”, myInputStream, “passwords.txt”);
Add a File
object to the RequestParams
to upload:
File myFile = new File(“/path/to/file.png”);
RequestParams params = new RequestParams();
try {
params.put(“profile_picture”, myFile);
} catch(FileNotFoundException e) {}
Add a byte array to the RequestParams
to upload:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
写在最后
由于本文罗列的知识点是根据我自身总结出来的,并且由于本人水平有限,无法全部提及,欢迎大神们能补充~
将来我会对上面的知识点一个一个深入学习,也希望有童鞋跟我一起学习,一起进阶。
提升架构认知不是一蹴而就的,它离不开刻意学习和思考。
**这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家,**梳理了多年的架构经验,筹备近1个月最新录制的,相信这份视频能给你带来不一样的启发、收获。
领取方式:点击这里获取免费架构视频资料
最近还在整理并复习一些Android基础知识点,有问题希望大家够指出,谢谢。
希望读到这的您能转发分享和关注一下我,以后还会更新技术干货,谢谢您的支持!
转发+点赞+关注,第一时间获取最新知识点
**这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家,**梳理了多年的架构经验,筹备近1个月最新录制的,相信这份视频能给你带来不一样的启发、收获。
[外链图片转存中…(img-HgNDCWsN-1711374432983)]
[外链图片转存中…(img-pNjYnAeT-1711374432983)]
领取方式:点击这里获取免费架构视频资料
最近还在整理并复习一些Android基础知识点,有问题希望大家够指出,谢谢。
希望读到这的您能转发分享和关注一下我,以后还会更新技术干货,谢谢您的支持!
转发+点赞+关注,第一时间获取最新知识点
Android架构师之路很漫长,一起共勉吧!