Android初学者必须知道的10个技术

  

如果你是往Android开发路上走,那么以下的10个技术功能实现是你必须要会的,来看看。

  

技术选型

  

  

采用BGARefreshLayout-Android,支持的下拉刷新样式基本可以满足我的需求,使用起来也比较简单,实现两个接口即可设置刷新动作和加载更多的动作。这位卓友的其他开源库也很好用,有兴趣的可以去看下。

  

使用方法:

        私人空间initBGALayout () {//为BGARefreshLayout设置代理   bgaRefreshLayout.setDelegate(这个);//设置下拉刷新和上拉加载更多的风格参数1:应用程序上下文,参数2:是否具有上拉加载更多功能      BGANormalRefreshViewHolder refreshViewHolder=新BGANormalRefreshViewHolder (getContext(),真正的);   refreshViewHolder.setLoadingMoreText(“加载更多”);   refreshViewHolder.setLoadMoreBackgroundColorRes (R.color.white);   refreshViewHolder.setRefreshViewBackgroundColorRes (R.color.white);   bgaRefreshLayout.setRefreshViewHolder (refreshViewHolder);   }            @Override   公共空间>   公共接口JuheApi {   @ get   ObservablegetNews (url字符串);      @ get   ObservablegetFunny (url字符串);      @ get   ObservablegetJoke (url字符串);      @ get   ObservablegetTodayInHistory (url字符串);      @ get   ObservablegetQueryNews (url字符串);   }            公开课Retrofitance {   公共静态最终字符串BASE_URL=" http://gank.io/api/";      私有静态最终int DEFAULT_TIMEOUT=5;      私人改造改造;   私人JuheApi mJuheApi;   私人OkHttpClient mOkHttpClient;//构造方法私有   私人Retrofitance () {//手动创建一个OkHttpClient并设置超时时间   OkHttpClient。Builder httpClientBuilder=new OkHttpClient.Builder ();   httpClientBuilder。connectTimeout (DEFAULT_TIMEOUT TimeUnit.SECONDS);   mOkHttpClient=httpClientBuilder.build ();      改造=new Retrofit.Builder () .client (mOkHttpClient)   .addConverterFactory (GsonConverterFactory.create ())   .addCallAdapterFactory (RxJava2CallAdapterFactory.create ())   .baseUrl (BASE_URL)   .build ();      mJuheApi=retrofit.create (JuheApi.class);   }//获取单例   公共静态Retrofitance getInstance () {   返回SingletonHolder.INSTANCE;   }/* *   *根据类型获取新闻信息   */公共空间getNews (Observer订户,字符串类型){   字符串URL=" ";   commonOp (mJuheApi.getNews (URL),用户);   }/* *   *获取趣图信息   */公共空间getFunny (Observer订阅者,int pagenum) {   字符串URL=" ";   commonOp (mJuheApi.getFunny (URL),用户);   }/* *   *获取历史上的今天   */公共空间getHistory (Observer订阅者){   日历现在=Calendar.getInstance ();   字符串URL=" ";   commonOp (mJuheApi.getTodayInHistory (URL),用户);   }/* *   *获取笑话大全   */公共空间getJoke (Observer订阅者,int pagenum) {   字符串URL=" ";   commonOp (mJuheApi.getJoke (URL),用户);   }         公共空间getQueryNews (Observer订阅者,字符串字){   字符串URL=" ";   commonOp (mJuheApi.getQueryNews (URL),用户);   }      私人空间commonOp(可观测的观测,观察者订户){   observable.subscribeOn (Schedulers.io ())   .unsubscribeOn (Schedulers.io ())   .observeOn (AndroidSchedulers.mainThread ())   .subscribe(订户);   }//在访问HttpMethods时创建单例   私有静态类SingletonHolder {   私有静态最终Retrofitance实例=new Retrofitance ();   }   }      

  

不二选择,RxJava2 + RxAndoid告别线程和AsyncTask,不用写处理程序了。

  

使用方法:

        公共空间getContent (int pagenum) {   Observer观察者=new Observer () {   @Override   公共空间>   @BindView (R.id.tl_web)   工具栏tlWeb;   @BindView (R.id.wv_content)   WebView wvContent;   @BindView (R.id.activity_web)   LinearLayout activityWeb;   @BindView (R.id.progressbar)   ProgressBar ProgressBar;      …    ButterKnife.bind(这个);      

配合插件使用效果会更好喔。

  

 Android初学者必须知道的10个技术

  

Android初学者必须知道的10个技术