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(1.初识Android应用程序目录)
  2. Android应用程序添加自定义的property属性
  3. -用Gradle 构建你的android程序
  4. NetBeans 7.0 安装 Android SDK 开发 Android 应用程序
  5. android菜鸟学习笔记5----第一个android程序
  6. Android 应用程序结构介绍
  7. Android S5PV210 camera驱动测试程序

随机推荐

  1. Android获取手机的型号和系统版本
  2. Android.StructureOfAndroidSourceCodeRo
  3. Android(安卓)创建与解析XML(三)—— Sax方
  4. Timer和TimerTask的知识点
  5. Android获取sdcard信息
  6. Android常用颜色表
  7. Android软键盘的弹出与隐藏
  8. android 监听网络连接状态的改变
  9. build.gradle(module)
  10. Android实现简易计算器(页面跳转和数据传