Android平台上的AsyncHttpClient是一款比较流行的Android异步网路加载库,在github上的网址是: https://github.com/loopj/android-async-http
但是AsyncHttpClient和另外比较著名的Android异步网络库 Volley和Glide不同的是,不像Volley和Glide内部已经实现好了缓存策略,AsyncHttpClient自身没有实现缓存策略。
实验可以表明这点。
实验方法:我写一个简单的Android小程序,仅仅加载一张从网络获取的图片(我的CSDN博客头像),在联网时候启动这个程序,然后关闭手机设备的所以网络连接,此时再次启动该程序。
先给出测试的程序所有代码:

测试的主Activity:MainActivity.java


这是两个分开的例子 布局就不写了 注意写布局

注意:权限

<uses-permission android:name="android.permission.INTERNET"/>

加载图片代码:[java] view plain copy
  1. packagezhangphil.http;
  2. importorg.apache.http.Header;
  3. importcom.loopj.android.http.AsyncHttpClient;
  4. importcom.loopj.android.http.AsyncHttpResponseHandler;
  5. importandroid.app.Activity;
  6. importandroid.graphics.Bitmap;
  7. importandroid.graphics.BitmapFactory;
  8. importandroid.os.Bundle;
  9. importandroid.widget.ImageView;
  10. publicclassMainActivityextendsActivity{
  11. privatefinalStringurl="http://avatar.csdn.net/9/7/A/1_zhangphil.jpg";
  12. @Override
  13. protectedvoidonCreate(BundlesavedInstanceState){
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16. finalImageViewimageView=(ImageView)findViewById(R.id.imageView);
  17. AsyncHttpClienthttpclient=newAsyncHttpClient();
  18. httpclient.get(url,newAsyncHttpResponseHandler(){
  19. @Override
  20. publicvoidonSuccess(intstatusCode,Header[]headers,
  21. byte[]response){
  22. BitmapFactorybitmapFactory=newBitmapFactory();
  23. Bitmapbitmap=bitmapFactory.decodeByteArray(response,0,
  24. response.length);
  25. imageView.setImageBitmap(bitmap);
  26. }
  27. @Override
  28. publicvoidonFailure(intstatusCode,Header[]headers,
  29. byte[]response,Throwableerror){
  30. error.printStackTrace();
  31. }
  32. });
  33. }
  34. }
加载百度网络地址:

package com.example.async;import org.apache.http.Header;import com.loopj.android.http.AsyncHttpClient;import com.loopj.android.http.AsyncHttpResponseHandler;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final TextView tv=(TextView) findViewById(R.id.tv);    AsyncHttpClient httpclient = new AsyncHttpClient();         String url="http://www.baidu.com";    httpclient.get(url, new AsyncHttpResponseHandler(){@Overridepublic void onFailure(int arg0, Header[] arg1, byte[] arg2,Throwable arg3) {Toast.makeText(getApplicationContext(), "失败", Toast.LENGTH_SHORT).show();}@Overridepublic void onSuccess(int statusCode, Header[] headers,                      byte[] response) {tv.setText(new String(response));}        });        }}


更多相关文章

  1. Android中ProgressBar的使用-通过Handler与Message实现进度条显
  2. Android中的几种网络请求方式详解
  3. Android高效加载大图、多图解决方案,有效避免程序OOM
  4. Android第三方异步网路加载库AsyncHttpClient内部实现缓存策略了
  5. Android利用Fiddler进行网络数据抓包
  6. 关于android应用程序的入口
  7. Android(安卓)8.1 中Systemui中的常见修改(八)SystemUI加载流程
  8. Android中ProgressBar的使用-通过Handler与Message实现进度条显
  9. Android中使用WebView, WebChromeClient和WebViewClient加载网页

随机推荐

  1. Android(安卓)9-patch
  2. Android中的windowSoftInputMode属性详解
  3. Android(安卓)Socket 开发
  4. 从零开始Android
  5. android 的 Gallery 的简单使用
  6. Flutter和Android中的View区别
  7. 那些iOS和Android跨平台解决方案
  8. 【Android自助餐】Handler消息机制完全解
  9. Android(安卓)中的AsyncTask的使用心得
  10. 解决办法Android中Error generating fina