java游戏荒野求生_GitHub - jianyushanshe/Wilderness-survival-Android-NetWorkLibrary: ⚡️Wilderness-survival-...

版本号修改人时间备注 5.4简雨山舍2019-4-28

功能一:网络请求

1.集成步骤

在gradle中添加引用

llprojects {

repositories {

...

maven { url 'https://www.jitpack.io' }

}

}

dependencies {

implementation 'com.github.jianyushanshe:Wilderness-survival-Android-NetWorkLibrary:5.4'

}

2.使用方法

2.1在Application的onCreate方法中初始化

//初始化ApiBox

ApiBox.Builder builder = new ApiBox.Builder();

builder.application(this)

.debug(BuildConfig.DEBUG)//是否是debug模式

.connetTimeOut(30000)//连接超时时间

.delayTimeShowLoading(3000)//延时显示loading,加载超过该时间会显示loading,该时间内加载完成,则不显示loading

.readTimeOut(30000)//读取超时时间

.jsonParseExceptionCode(1003)//json解析异常标识

.successCode(200)//访问成功标识

.tokenExpiredCode(406)//token过期,重新登录标识

.unknownExceptionCode(1000)//未知异常标识

.build();

2.2:network包中创建请求的interface类

例如:

public interface AccountApi {

//登录

@GET(".")

Flowable login(@QueryMap TreeMap map);

}

2.3:network包中创建一个类,实例化2.2中创建的interface。

例如:

public class AccountNetwork {

public static AccountNetwork accountNetwork;

private static AccountApi accountApi;

private AccountNetwork() {

}

//单例

public static synchronized AccountNetwork get() {

if (accountNetwork == null) {

accountNetwork = new AccountNetwork();

}

if (accountApi == null) {

accountApi = ApiBox.getInstance().createService(AccountApi.class, HttpUrl.Base_Url);

}

return accountNetwork;

}

/**

* @功能:登录

* @param:

* @return:

*/

public Flowable login(String userName, String userPassword) {

// 添加参数到集合

TreeMap tMap = new TreeMap<>();

tMap.put("username", userName);

tMap.put("pwd", userPassword);

Flowable observable = accountApi.login(tMap);

return observable;

}

}

2.4 repository包中创建一个类,进行数据请求和处理

例如:

Public class LoginRepository extends BaseRepository implements LoginContract.Repository {

/**

* LoginRepository构造方法

*

* @param presenter

*/

public LoginRepository(LoginContract.Presenter presenter, LoginContract.View view, Activity context) {

super(presenter, view, context);

}

/**

* 登录操作,异步网络请求,请求成功将返回数据交给Presenter做业务处理

*/

@Override

public void userLogin(String name, String pwd) {

//一般弹的失败情况已处理,若需改写重写 onUserError 并去掉super(xx).

BaseSubscriber subscriber = new BaseSubscriber(context, view) {

@Override

protected void onUserSuccess(ResBase resBase) {

//请求成功返回的数据

UserEntity userEntity = new UserEntity();

userEntity.state = 1;

userEntity.userName = "用户名";

userEntity.userPassword = "用户密码";

presenter.upData(userEntity);

}

@Override

protected void onUserError(CommonException ex) {

super.onUserError(ex);

//请求错误,需要用户处理的异常

}

@Override

protected void onUnifiedError(CommonException ex) {

super.onUnifiedError(ex);

//请求错误,系统级别异常

}

};

//一个请求

//RxUtils.getScheduler(true, view)参数1,是否显示loading;参数2,显示loading的view

Disposable disposable = AccountNetwork.get()

.login(name, pwd)

.compose(RxUtils.getScheduler(true, view))

.subscribeWith(subscriber);

//添加到订阅集合中,在activity或fragment,onDestroy时取消

rxManage.add(disposable);

}

}

2.5 在BaseActivity中,继承ILoading 接口,重写reLogin重新登录的方法、showLoading加载进度显示方法和dismissLoading隐藏进度显示方法

/**

* 重新登录,网络库里面会调用

*

* @param context

* @param s

*/

@Override

public void reLogin(Context context, String s) {

//重新登录需要做的操作

}

@Override

public void showLoading() {

//显示加载的进度

}

@Override

public void dismissLoading() {

//隐藏进度显示

}

2.6在onDestory方法中清除所有订阅

rxManage.clear();//清空所有订阅

功能二:网络状态监听

1.在BaseActivity的onCreate中注册网络状态监听广播

if (netWorkBroadcastReceiver == null) {

netWorkBroadcastReceiver = new NetWorkBroadcastReceiver(this);

}

IntentFilter intentFilter = new IntentFilter();

intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);

registerReceiver(netWorkBroadcastReceiver, intentFilter);//注册广播

2.在BaseActivity的onResume中调用网络状态检测方法,检测当前网络状态,做相应的操作

if (NetWorkUtil.isNetConnected(getApplicationContext())) {

//网络连接

} else {

//网络未连接

}

3.BaseActivity继承IInvalid接口,重写showNetWorkState方法,在showNetWorkState方法中根据isConnect判断网络是否连接。

@Override

public void showNetWorkState(boolean isConnect) {

tvInfo.setText("网络状态变化:网络是否连接---" + isConnect);

}

4.在onDestory方法中,解除注册广播

unregisterReceiver(netWorkBroadcastReceiver);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值