好用的android 基础框架XBase
2019-07-09  本文已影响507人 
Allens_Jiang
1.前言
方便平时快速开发用到的一个基础框架
2.地址
github 欢迎指出不合理的地方,
3.如何下载
- Add it in your root build.gradle at the end of repositories:
 
    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
- Step 2. Add the dependency
 - 最新版本可以github上查看
 
    dependencies {
            implementation 'com.github.JiangHaiYang01:XBase:1.0.0'
    }
4 如何使用
1. 继承 BaseApplication
public class MyApp extends BaseApplication {
    @Override
    protected LogInfo onLogInfo() {
        return LogInfo.builder()
                .fileName("log")//文件名称
                .isOpen(true)//是否保存到文件
                //.path()//保存文件地址 默认沙盒
                .maxFileSize(10)//最大文件数
                .maxM(5)//单个文件最大多少M
                .tag("log--->")
                .build();
    }
}
默认log 参数配置
- 
onAppFrontOrBack前后台状态 - 
onOpenOnePx是否开启一像素 - 
onAppLockScreen锁屏状态 - 
onAppNetWorkStatusapp 网络变化 - 
onBlueStatusChange蓝牙变化 
2 继承 BaseActivity
    /***
     * 是否开启沉寂式布局
     */
    void silence();
    int getWith();
    int getHeight();
    /***
     * 跳转
     * @param clz activity
     */
    void startActivity(Class<?> clz);
    void startActivity(Class<?> clz, Bundle bundle);
    void startActivityForResult(Class<?> cls, Bundle bundle, int requestCode);
    void showFragment(Fragment fragment, int resId);
    /***
     * 获取当前系统语言状态
     * @return
     */
    Locale getLocal();
    /***
     * 检查网络是否可用
     * @return true 可用
     *         false 不可用
     */
    boolean isNetworkAvailable();
    Context getContext();
 void toast(String msg);
    void toast(int resId);
    void showLoading();
    void hideLoading();
    /***
     * 绑定控件
     * @param resId
     * @param <T>
     * @return
     */
    <T extends View> T $(int resId);
    /***
     * 获取资源的String
     * @param id
     * @return
     */
    String getResId(int id);
    /* 获取SharedPreference 参数*/
    <T> T getPref(String key);
    <T> T getPref(String key, T defaultValue);
    <T> boolean putPref(String key, T value);
    boolean deleteAllPref();
    boolean deletePref(String key);
    long getPrefCount();
    boolean containsPref(String key);
//两个手手指放大
        void onTouchBig();
//两个手指缩小
        void onTouchSmall();
3. 继承 BaseFragment
使用接口几乎同上
4 网络模块
- 初始化配置
 
 xHttp = new XHttp.Builder()
                .connectTimeout(10, TimeUnit.SECONDS)
                .writeTimeout(10, TimeUnit.SECONDS)
                .readTimeout(10, TimeUnit.SECONDS)
                .baseUrl("http://134.175.88.222/")
                .retryOnConnectionFailure(false)
                .isLog(true)
                .isLogToFile(true)
//                .addHeard()
                .build();
网络请求绑定了生命周期,防止在onDestroy的时候还有请求的任务,导致内存泄漏,
断点下载,暂停下载,取消下载
 public <T> void doGet(BaseFragment context, Class<T> tClass, String parameter, final OnHttpListener<T> listener) {
 public <T> void doGet(BaseActivity context, Class<T> tClass, String parameter, final OnHttpListener<T> listener) {
 public <T> void doPost(BaseActivity context, Class<T> tClass, String parameter, final OnHttpListener<T> listener) {
 public <T> void doPost(BaseFragment context, Class<T> tClass, String parameter, final OnHttpListener<T> listener) {
  public <T> void doBody(BaseActivity context, Class<T> tClass, String parameter, final OnHttpListener<T> listener) {
  public <T> void doBody(BaseFragment context, Class<T> tClass, String parameter, final OnHttpListener<T> listener) {
  public <T> void doPut(BaseFragment context, Class<T> tClass, String parameter, final OnHttpListener<T> listener) {
  public <T> void doPut(BaseActivity context, Class<T> tClass, String parameter, final OnHttpListener<T> listener) {
  public <T> void doDelete(BaseFragment context, Class<T> tClass, String parameter, final OnHttpListener<T> listener) {
  public <T> void doDelete(BaseActivity context, Class<T> tClass, String parameter, final OnHttpListener<T> listener) {
  public void doDownload(String url, String filePath, String name, OnDownLoadListener loadListener) {
  public void doDownloadBindAct(BaseActivity activity, String url, String filePath, String name, OnDownLoadListener loadListener) {
  public void doDownloadBindFragment(BaseFragment fragment, String url, String filePath, String name, OnDownLoadListener loadListener) {
  public void doDownload(String url, String filePath, OnDownLoadListener loadListener) {
  public void doDownloadBindAct(BaseActivity activity, String url, String filePath, OnDownLoadListener loadListener) {
  public void doDownloadBindFragment(BaseFragment fragment, String url, String filePath, OnDownLoadListener loadListener) {
  public void doDownLoadPause(String url) {
  public void doDownLoadPauseAll() {
  public void doDownLoadCancel(String url) {
  public void doDownLoadCancelAll() {