Android 网络访问框架 NiceDay 发布

针对 android C/S架构的客户端,经常访问网络的需求,开发了一个独立的框架处理所有的网络请求。达到以下几个目标:

1、所有的网络请求都是异步的

2、所有的网络请求都是可以控制的。

3、所有的网络请求都是可以随时终止的

4、当activity暂停或者停止的时候可以根据需求决定是否取消之前的请求

5、当activity结束的时候清理请求资源

6、当系统内存比较低到时候,自动关闭所有网络请求,自动重启网络

7、控制系统线程的并发数量,防止大并发导致内存溢出

8、设置网络访问队列,保证网络访问高效、有序

......................等待您的完善....................

取名 :NiceDay ,就是想程序员的每一天都是开心快乐的!不做重复工作!大家贡献,大家快乐!

现在该项目已经开源,欢迎热爱编程的Coder ,Down下来代码之后维护代码,造福Androider ......

代码托管在 googleCode上

下载地址:

http://code.google.com/p/niceday/

SVN:

http://niceday.googlecode.com/svn/trunk/

使用代码例子:

?
protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); list = (ListView)findViewById(R.id.list); /** * 开始请求网络 http://files.cnblogs.com/meiyitianabc/netlib.css */ httpget1 = new AsyncHttpGet( new DefaultParseHandler(), "http://files.cnblogs.com/meiyitian/netlib.css" , null , new RequestResultCallback(){ @SuppressWarnings ( "unchecked" ) @Override public void onSuccess(Object o) { try { SimpleExampleActivity. this .listData = (ArrayList<HashMap<String, Integer>>)o; SimpleExampleActivity. this .mHandler.sendEmptyMessage( 0 ); Log.d(SimpleExampleActivity. class .getName(), "MainActivity onSuccess" ); } catch (Exception e){ Log.d(SimpleExampleActivity. class .getName(), "MainActivity onSuccess Exception ," +e.getMessage()); e.printStackTrace(); } } @Override public void onFail(Exception e) { // TODO Auto-generated method stub } }); Log.i(SimpleExampleActivity. class .getName(), "MainActivity" ); DefaultThreadPool.getInstance().execute(httpget1); this .requestList.add(httpget1); }

一个请求就这样简单,可控。

代码解释:

?
<span class = "Apple-style-span" style= "font-size: 15px; line-height: 22px;" ><br></span>

AsyncHttpGet 是一个异步httpget对象,参数分别是
1、返回数据处理器handler,在这里可以根据自己的业务逻辑,实现自己的解析逻辑返回给UI
2、网址
3、请求参数(可为空) - 一个list包装的 RequestParameter 类型
4、回调函数
有了一个HttpGet对象之后,执行的时候把他丢到线程池里面去就会执行。
this.requestList.add(httpget1);这句的意思,如果想控制请求,可以把他加到该activity的请求集合。

?

Todo list:

1、在队列的数量小雨线程池数量+队列的数量的时候,比较靠谱,在大于的时候有些请求,可能不被处理,要采取一个可行的方案

2、代码几乎没用什么高深的设计模式知识,感觉现在不用也够了,但是有好多需要优化、重构.

希望更多的人维护项目,发现bug,让这个框架越来越强大!

感兴趣的留下联系方式把你们加入 SVN .........

期待您


更多相关文章

  1. Android高手进阶教程(十七)之---Android中Intent传递对象的两种
  2. Android(安卓)init源代码分析(1)概要分析
  3. Android自定义字体样式Typeface的三种技术方案:Java代码的setType
  4. GalHttprequest类库简介——android平台上的一个轻量级的http网
  5. Android(安卓)JNI 使用的数据结构JNINativeMethod详解 ||建立And
  6. Android中的OpenSL ES是如何实现的?
  7. android中使用线程池和临时缓存优化网络图片加载
  8. Android下引用系统库的方法及问题
  9. 深入浅出RxJava四-在Android中使用响应式编程

随机推荐

  1. Android(安卓)RatingBar 使用示例
  2. JNI示例及讲解
  3. 解决 app:transformClassesWithDexForDeb
  4. Android在整个项目中设置自定义字体
  5. Android(安卓)代码监控apk安装,卸载,替换
  6. Gridview实现银行选择列表
  7. Android(安卓)6.0 权限适配
  8. Head Fisrt Android(安卓)Development读
  9. Online Mono for Android(安卓)training
  10. java.lang.VerifyError: Verifier reject