您当前的位置: 首页 > 
  • 0浏览

    0关注

    674博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

回调使用实例

沙漠一只雕得儿得儿 发布时间:2019-01-02 14:41:05 ,浏览量:0

mainActivity.java 和 SettingRecyclerAdapter.java 这两个类需要根据从服务端获取到的APK的版本信息去判断是否需要弹出更新的对话框,也就是需要从服务器获取到版本信息后才能进行后续的版本判断、弹出升级对话框的操作。有一个明显的先后顺序:从服务端返回的信息之后本地判断完成后再进行后续操作。

mainActivity.java

//应用初始化的OnCreate()方法中判断升级,设置联系方式
        AppInfoFromServer.getIns().setSuccessGetInfoListener(new AppInfoFromServer.ISuccessGetInfoListener() {

            @Override
            public void onGetUpgradeInfo(String serverVersionCode, String url) {
                Long localVersionCode = Long.valueOf(Utility.getVersionCode(IcFunApplication.getInstance()));
                //判断升级,必须要等从服务端获取到返回的版本号后,和本地的版本号进行对比
                showUpgradeDialog(Long.valueOf(serverVersionCode) > localVersionCode, url);
            }
        });
        //请求办事情,办完事情会有上面的回调
        AppInfoFromServer.getIns().getAppInfoFromServer();

SettingRecyclerAdatapter.java

case SettingPage.UPGRADE:
                        //手动触动判断升级,在onClick() 方法中手动触发,设置联系方式
                        Long localVersionCode = Long.valueOf(Utility.getVersionCode(mActivity));
                        AppInfoFromServer.getIns().setSuccessGetInfoListener(new AppInfoFromServer.ISuccessGetInfoListener() {

                            @Override
                            public void onGetUpgradeInfo(String serverVersionCode, String url) {
                                //判断升级,必须要等从服务端获取到返回的版本号后,和本地的版本号进行对比
                                showUpgradeDialog(Long.valueOf(serverVersionCode) > localVersionCode, url);
                            }
                        });
                        //请求办事情,办完事情会有上面的回调
                        AppInfoFromServer.getIns().getAppInfoFromServer();
                        break;

AppInfoFromServer.java

public interface ISuccessGetInfoListener {
        void onGetUpgradeInfo(String serverVersinCode, String url);
    }

    public void setSuccessGetInfoListener(ISuccessGetInfoListener iSuccessGetInfoListener) {
        this.mISuccessGetInfoListener = iSuccessGetInfoListener;
    }
public void getAppInfoFromServer() {
        GameAPI gameAPI = KHttpWorker.ins().createHttpService(GameAPI.API_HOST, GameAPI.class);
        Observable observable = gameAPI.getAppVersion();
        observable.subscribeOn(Schedulers.io())
                .subscribe(new Consumer() {
                    @Override
                    public void accept(JsonObject jsonObject) throws Exception {

                        if (jsonObject == null) {
                            return;
                        }

                        JsonObject data = jsonObject.get("data").getAsJsonObject();

                        String versioncode = data.get("versioncode").getAsString();

                        String downLoadUrl = data.get("url").getAsString();

                        //另外一方请求办事情,本例是从服务端获取数据,完成后,将数据返回给请求方使用
                        if (mISuccessGetInfoListener != null) {
                            mISuccessGetInfoListener.onGetUpgradeInfo(versioncode, downLoadUrl);
                        }

                    }
                }, new Consumer() {
                    @Override
                    public void accept(Throwable throwable) throws Exception {

                    }
                });
    }

 

关注
打赏
1657159701
查看更多评论
立即登录/注册

微信扫码登录

0.6225s