在片段中运行异步甚至没有被运行



我像这样运行命令:

new GetGameScoresFromFuhantikAPI()

我的方法是 ->

    private class GetGameScoresFromFuhantikAPI extends AsyncTask<Void, Void, Void> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            MethodContants.showLog(TAG, "Loading FUHNATIK API", true);
        }
        @Override
        protected Void doInBackground(Void... arg0) {
            HttpHandler sh = new HttpHandler();
            // Making a request to url and getting response

            String url = API_URL + jsonFile;
//                String url = "http://www.nfl.com/liveupdate/game-center/" + list.get(i) + "/" + list.get(i) + "_gtd.json";
            String jsonStr = sh.makeServiceCall(url);
            Log.e(TAG, "Response from FUHNATIK API: " + url);
            if (jsonStr != null) {
                try {
                    //JSONObject object = new JSONObject(json);
                    JSONObject object = new JSONObject(jsonStr);
                    currentWeek = object.getString("pypwk");
                    currentWeekDB = object.getString("mdb");
                    JSONArray array = (JSONArray) object.get("g");
                    scheduleModelList = new ArrayList<>();
                    for (int i = 0; i < array.length(); i++) {
                        //TODO IF WE DONT PLAY THURSDAY GAMES PUT LIST.ADD IN HERE
//                if (!array.getJSONObject(i).getString("-d").equals("Thu")){
//
//                }
                        scheduleModelList.add(new ScheduleModel(array.getJSONObject(i).getString("-v"),
                                array.getJSONObject(i).getString("-h"),
                                array.getJSONObject(i).getString("-t"),
                                array.getJSONObject(i).getString("-d"),
                                array.getJSONObject(i).getString("-eid").substring(0, 8),
                                array.getJSONObject(i).getString("-t") + array.getJSONObject(i).getString("-q"),
                                array.getJSONObject(i).getString("-vnn"),
                                array.getJSONObject(i).getString("-hnn"),
                                "...select a team...",
                                array.getJSONObject(i).getString("-eid"),
                                array.getJSONObject(i).getString("-vs"),
                                array.getJSONObject(i).getString("-hs"),
                                array.getJSONObject(i).getString("-w")));

                    }

                } catch (final JSONException e) {
                    Log.e(TAG, "FUHNATIK API: Json parsing error: " + e.getMessage());
                }
            } else {

                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Log.e(TAG, "FUHNATIK API: Couldn't get json from server.");
                        Toast.makeText(getContext(), "Getting from ESPN", Toast.LENGTH_SHORT).show();
                        //new GetGameScoresFromESPN().execute();
                    }
                });
            }
            return null;
        }
        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            final ListViewAdapterResults adapter = new ListViewAdapterResults(listView.getContext(), scheduleModelList);
            listView.setAdapter(adapter);
            MethodContants.showLog(TAG, "DONE WITH LOADING FUHNATIK API", false);
        }
    }

我似乎无法弄清楚为什么代码永远不会运行。我浏览了调试器,但我真的无法确定在哪里失败。对此的任何帮助将不胜感激。

最终,如果JSON文件不在此URL,我将从NFL获得JSON。但是,如果没有这种工作,ESPN也无法正常工作,我真的无法弄清楚错误在我的何处。我必须假设这将是一个很容易的修复。

再次,如前所述,任何帮助都将不胜感激!

在上面的代码行中,您调用类,但忘记执行异步。因此,没有调用过弹性方法。尝试以下操作:

new GetGameScoresFromFuhantikAPI().execute();

如果您想通过某些内容作为参数,请给出这样的参数,以这样的昏迷分开:

new GetGameScoresFromFuhantikAPI().execute(arg0, arg1);

相关内容

  • 没有找到相关文章

最新更新