当前位置: 首页 > news >正文

村级网站建设/常见的网络直接营销有哪些

村级网站建设,常见的网络直接营销有哪些,做外贸流程详细步骤,北京产品网站设计哪家专业转载请标明出处: http://blog.csdn.net/forezp/article/details/52621898 本文出自方志朋的博客 最近在看Rxjava,写了一个简单的 demo整合了Rxjava retrofitmvp,写完了迫不及待的分享出来了,打算以后的开发都用这个,太…

转载请标明出处:
http://blog.csdn.net/forezp/article/details/52621898
本文出自方志朋的博客

最近在看Rxjava,写了一个简单的 demo整合了Rxjava +retrofit+mvp,写完了迫不及待的分享出来了,打算以后的开发都用这个,太强大了,另外OKhTTP用了网络缓存,非常的方便,以后写缓存都不需要写本地数据库了。

这个项目使用到了拉姆达表达式:
在安卓中使用Java 8 lambda表达式,很遗憾安卓原生不支持,需要用插件。
在工程中build.GRADLE导入:

  dependencies {classpath 'com.android.tools.build:gradle:2.1.0'classpath 'me.tatarka:gradle-retrolambda:3.2.5'}

在项目的build.gradle导入

  apply plugin: 'me.tatarka.retrolambda'

需要使用到Java8在android根下

  android {compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}
}

这样就可以在android下使用拉姆达表达式。

引入RXjAVA、RxAndroid、retrofit jar包

  compile 'io.reactivex:rxandroid:1.2.1'compile 'com.squareup.retrofit2:retrofit:2.1.0'compile 'com.squareup.retrofit2:converter-gson:2.1.0'compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'

关于retrofit的用法,点击见官网。

关于Rxjava的用法, 翻译的Rxjava中文文档

本文是一个整理好的RxJava+retrofit+Mvp的例子。

本文的的网络请求来源知乎API.

1.首先创建retrofit 接口

 public interface ZhihuApi {@GET("news/latest")Observable<NewsTimeLine> getLatestNews();
}

2.创建retrofit service

File httpCacheDirectory = new File(MyApp.mContext.getCacheDir(), "responses");int cacheSize = 10 * 1024 * 1024; // 10 MiBCache cache = new Cache(httpCacheDirectory, cacheSize);OkHttpClient client = new OkHttpClient.Builder().addInterceptor(REWRITE_CACHE_CONTROL_INTERCEPTOR).cache(cache).build();Retrofit retrofit_zhihu = new Retrofit.Builder().baseUrl(ZHIHU_BASE_URL).client(client).addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJavaCallAdapterFactory.create()).build();ZhihuApiService = retrofit_zhihu.create(ZhihuApi.class);

配置json解析

   .addConverterFactory(GsonConverterFactory.create())

配置Rxjava 适配器

  .addCallAdapterFactory(RxJavaCallAdapterFactory.create())

其中配置了网络缓存

   Interceptor REWRITE_CACHE_CONTROL_INTERCEPTOR = chain -> {CacheControl.Builder cacheBuilder = new CacheControl.Builder();cacheBuilder.maxAge(0, TimeUnit.SECONDS);cacheBuilder.maxStale(365, TimeUnit.DAYS);CacheControl cacheControl = cacheBuilder.build();Request request = chain.request();if (!NetUtils.isNetworkAvailable(MyApp.mContext)) {request = request.newBuilder().cacheControl(cacheControl).build();}Response originalResponse = chain.proceed(request);if (NetUtils.isNetworkAvailable(MyApp.mContext)) {int maxAge = 0; // read from cachereturn originalResponse.newBuilder().removeHeader("Pragma").header("Cache-Control", "public ,max-age=" + maxAge).build();} else {int maxStale = 60 * 60 * 24 * 28; // tolerate 4-weeks stalereturn originalResponse.newBuilder().removeHeader("Pragma").header("Cache-Control", "public, only-if-cached, max-stale=" + maxStale).build();}};

在MVP的P层进行网络请求,传统的应该是Model 层,写在P层少一次接口回调。

   public void getNews(IGetZhihuNewsView iGetZhihuNewsView){zhihuApi.getLatestNews( ).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(newsTimeLine -> {disPlayZhihuList(iGetZhihuNewsView,newsTimeLine, context);},this::loadError);}

其中view接口

public interface IGetZhihuNewsView {void  getSuccess(NewsTimeLine newsTimeLine);
}

在Activity中

  public class MainActivity extends AppCompatActivity implements IGetZhihuNewsView {private TextView tv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv= (TextView) findViewById(R.id.tv) ;ZhihuPresenter zhihuPresenter=new ZhihuPresenter(this);zhihuPresenter.getNews(this);}@Overridepublic void getSuccess(NewsTimeLine newsTimeLine) {tv.setText(newsTimeLine.toString());}
}

代码比较简单,~~~

源码下载

转载于:https://www.cnblogs.com/forezp/p/9852206.html

http://www.lbrq.cn/news/1434997.html

相关文章:

  • 公司查询网站查询系统/游戏推广公司怎么接游戏的
  • 官方网站查询 优帮云/全网营销代运营
  • 做bannar在哪个网站参考/优化推广排名网站教程
  • 网络规划设计师待遇/好的seo平台
  • 17网站一起做网店下载/网站seo优化外包顾问
  • 新建网站怎么做关键词/cba最新消息
  • phpcms网站转移/网络推广经验
  • java网站建设教程/网站流量统计工具
  • 做企业网站联系/深圳百度推广代理商
  • 兰州网站/网络推广的工作内容
  • 北京手机网站建设公司/百度推广收费标准
  • 百度站长工具网站认证/谷歌seo搜索优化
  • 班级网站的建设调查表/培训机构网站
  • java 做的网站/a5站长网
  • 用摄像头直播网站怎么做/实体店怎么引流推广
  • 手工做的网站/自助建站系统个人网站
  • 用什么开源框架做网站/狼雨seo网站
  • 深圳住房与建设局网站/东莞软文推广
  • 宜昌做网站哪家最便宜/seo关键词排名系统
  • 做交互网站/建网站seo
  • 做网站应该注意哪些问题/免费行情网站
  • 电子商务网站设计与制作/今日头条热搜榜前十名
  • 最简单的做网站/百度开户需要什么条件
  • 奇迹网站自己做/对seo的认识和理解
  • 做安居客网站需要什么浏览器/seo技术经理
  • 网站如何进行优化/企业网站推广效果指标分析
  • 百科网站建设/某个网站seo分析实例
  • 做微博网站/长沙seo咨询
  • 网站的版式设计有哪些/整合营销包括哪三方面
  • 公司网站打不开不知道谁做的/快照关键词优化
  • c/c++实现 TCP Socket网络通信
  • Trae x Figma MCP一键将设计稿转化为精美网页
  • java中在多线程的情况下安全的修改list
  • 升级Gradle版本后,安卓点击事件使用了SwitchCase的情况下,报错无法使用的解决方案
  • SeaTunnel MCP Server 入选《中国信通院开源商业产品及企业典型案例集(2025)》
  • Spring Boot 集成 机器人指令中枢ROS2工业机械臂控制网关