Android - 避免在不必要时加载巨大的json数据

时间:2018-05-22 13:15:29

标签: android json listview

我有一个简单的列表视图,它从一个非常庞大的JSON加载数据。

目前我已经像下面的示例那样完成了 - 所以我从JSON中提取所有数据。这只是一个例子,我有更多的数据要分配给actorList:

 protected Boolean doInBackground(String... args) {
        HttpHandler sh = new HttpHandler();
        String url = "androidnews.json";
        String jsonStr = sh.makeServiceCall(url);

        if (jsonStr != null) {
            try {JSONObject jsonObj = new JSONObject(jsonStr);
                JSONArray actors = jsonObj.getJSONArray("result");

                for (int i = 0; i < actors.length(); i++) {
                    JSONObject c = actors.getJSONObject(i);

                    Actors actor = new Actors();

                    actor.setNazov(c.getString("name"));
                    actor.setPerex(c.getString("desc"));
                    actor.setPlace(c.getString("place"));
                    actor.setGps1(c.getString("gps1"));
                    actor.setGps2(c.getString("gps2"));
                    actor.setContact(c.getString("contact"));
                    actor.setinfo(c.getString("info"));

                    //and much more data from JSON

               actorsList.add(actor);

                }

但是,它工作正常,但我认为它无缘无故地加载所有数据。

因为在listview中我只使用标题和描述,所有其他数据只会传递给每个项目的onclick活动。

所以我以为我只会将项目的名称传递给onclick活动,而在其他活动中我将调用一个PHP文件,根据此名称作为参数将生成包含所有其他数据的JSON,这只会用于其他活动。

我这样做的方式更好吗?

当我只使用其中一些数据时,我真的不认为加载所有不必要的数据是有用的。

所以 - 实际上会有2个jsons,一个用于listview,一个用于详细信息,但第二个只在用户点击listview中的某个项目时被调用,所以不是每次都使用listview。

0 个答案:

没有答案