当前位置:首页 > 安卓源码 > 技术博客 >

Android以轻松的方式验证,跟踪和缓存远程数据

时间:2017-08-15 08:22 来源:互联网 作者:源码搜藏 浏览: 收藏 挑错 推荐 打印

一个轻型的Android库来 验证 , 跟踪 和 缓存 来自网络的数据,其内部的http实现是替代的,这里提供了齐射和改造。 应该指出的是,lib只是为了简化GET和POST在http中的常见条件,在某些特殊的情况下,应该使用http-lib的原始功能。 目标: 到 验证,解析或减

一个轻型的Android库来验证跟踪缓存来自网络的数据,其内部的http实现是替代的,这里提供了齐射和改造。

应该指出的是,lib只是为了简化GET和POST在http中的常见条件,在某些特殊的情况下,应该使用http-lib的原始功能。

目标:


  • 验证,解析或减轻来自网络的响应数据,以从M在MVC模式解耦℃;
  • 跟踪一个请求-响应过程的一致性,特别是在与不同的请求主体相同的URL的高频条件。
  • 缓存只是由来自控制器命令代码的数据,以减轻使用和减少控制器的责任。

用法:


添加依赖关系

repositories {
    jcenter()
}
dependencies {
     compile 'com.cysion:Action:1.0.0'
    ...
}
  1. 应首先调用MvcPointer.init(actionListener,debug,httpProxy);

  2. 创建一个BaseAction类来扩展MvcAction类,它可以做一些常见的事情,比如标题:

     @Override
     protected Map<String, String> getHeader() {
     	Map<String,String> headers = new HashMap<>();
    		headers.put("test1","one");
     	headers.put("test2","two");
     	return headers;
     }
    
  3. 创建一个与json相关的javabean;

  4. 创建一个动作扩展BaseAction;

     @Override
      protected String getUrl() {
        return Urls.BASE+Urls.FIND_COL;
      }
    
      @Override
      protected int getHttpMethod() {
          return Method_GET;
      }
    
    	@Override
      protected boolean getTargetDataFromJson(String aResult, long aTaskId) {
          if(valid(){
                listener.onSuccess(*targetResult*,aTaskId);
                return true;
          }
         return false;
    
    }
    

注意:getTargetDataFromJson()中的操作应该与上述相同;

  1. new GetAction(listener).params(map).taskId(100).execute(DataState.CACHE_FIRST);

     private TActionListener mActionListener = new TActionListener() {
     @Override
     public void onSuccess(Object obj, long taskId) {
         switch ((int)taskId) {
              case Action.NORMAL:
                //cache has done in action
                 break;
             case Action.LOAD_MOER:
                //do some work
                 break;
             case Action.REFRESH:
                 //do some work
                 break;
         }
     }
    

定制:


  • 在一个Sub Action类中通过覆盖定义一个请求的缓存过期:

      @Override
      protected int getKeepTime() {
      	return 10;//TimeUnits:s
      }
    
  • 通过覆盖在子Action类中定义一个特殊的头部:

      protected Map<String, String> getHeader() {
      if (mHeader == null) {
          mHeader = new HashMap<>();
      }
      return mHeader;
    

    }

  • 在子动作中覆盖下面的方法来设置特殊的http-impl:

      protected HttpProxy getHttpProxy() {
        return MvcPointer.getHttpProxy();
     }
    

    }

  • 去做...

Android以轻松的方式验证,跟踪和缓存远程数据 转载https://www.codesocang.com/appboke/36499.html

技术博客阅读排行

最新文章