加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在Volley中更新UI的最有效方法是什么

发布时间:2020-12-15 02:08:14 所属栏目:Java 来源:网络整理
导读:最近我在 android中使用Volley库..它工作正常,但我想知道更新UI的最有效方法..我有一个Utils类,有所有的Volley方法..现在我传递所有的视图将作为参数更新,但我已经读过我可以在我的活动中实现监听器,然后将它们作为参数传递给Utils类. 所以我的问题是: 哪个
最近我在 android中使用Volley库..它工作正常,但我想知道更新UI的最有效方法..我有一个Utils类,有所有的Volley方法..现在我传递所有的视图将作为参数更新,但我已经读过我可以在我的活动中实现监听器,然后将它们作为参数传递给Utils类.

所以我的问题是:

哪个更有效,为什么更新这样的UI:

public void getSettings(final TextView exampleView) {
    JsonObjectRequest jsonRequest = new JsonObjectRequest(Method.GET,url,(String) null,new Response.Listener<JSONObject>() {
                public void onResponse(JSONObject response) {
                    try {
                        final String setting = getSettingFromJSON(response);
                        exampleView.setText(setting);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },new Response.ErrorListener() {
                public void onErrorResponse(VolleyError arg0) {

                }
            });

    app.add(jsonRequest);
}

或者我在我的活动中声明听众:

Response.Listener<JSONObject> listener = new Response.Listener<JSONObject>() {
        public void onResponse(JSONObject response) {
            String setting = Utils.getSettingFromJSON(response);
            exampleView.setText(setting);
        }
    };

然后我将它们作为参数传递给我的utils函数,所以调用将是这样的:

utils.getSettings(listener);

代替 :

utils.getSettings(exampleView);

提前致谢 :)

解决方法

为什么不使用像 EventBus这样的东西管理从请求到您的活动的回传信息?这样,您就可以将您的网络代码与您的活动/视图分开.使用EventBus和Volley的基本思想如下:

>注册一个类来接收某种类型的事件,在这种情况下可能
活动
>在此类中创建一个方法来处理此事件,
exampleView.setText(设定值).
>将事件发布到总线,发布字符串或凌空错误
凌空听众.

有关更详细的示例,请查看此blogpost或Eventbus的github页面.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读