0

doInBackground()プログラムがメソッド内にあるときにJSON API からデータを取得してdoInBackground()いますが、ログはデータが取得されたことを示していますが、に行く代わりに、onPostExecute()まだdoInBackground()無限ループで実行されています。どうすればそのループを止めることができますか?

これは私のdoInBackground()コーディングです:

@Override
protected String doInBackground(String... DATA) {
    // TODO Auto-generated method stub
    TYPE = DATA[0];

if(TYPE=="reservation_page")
    {
        URL = DATA[1];
        jParser = new JsonParser();
        json = jParser.getJSONfromUrl(URL+memberId);
        try
        {
            JSONArray reservation = json.getJSONArray(TAG_RSVTION);
            for(int i = 0; i<reservation.length(); i++)
            {
                JSONObject r = reservation.getJSONObject(i);
                amount = r.getString(TAG_AMNT);
                gcpamount = r.getString(TAG_GCPAMNT);
                date1 = r.getString(TAG_DATE);
                month = r.getString(TAG_MNTH);
                year = r.getString(TAG_YEAR);
                time1 = r.getString(TAG_TIME);
                golfcourse_name = r.getString(TAG_GLFCRSNAME);
                no_of_player = r.getString(TAG_PLYRNO);

                HashMap<String, String> map = new HashMap<String, String>();

                map.put(TAG_AMNT, amount);
                map.put(TAG_GCPAMNT, gcpamount);
                map.put(TAG_DATE, date1);
                map.put(TAG_MNTH, month);
                map.put(TAG_YEAR, year);
                map.put(TAG_TIME, time1);
                map.put(TAG_GLFCRSNAME, golfcourse_name);
                map.put(TAG_PLYRNO, no_of_player);

                resvList.add(map);
                Log.v(TAG_LOG, "list: "+resvList);
            }
            Log.v(LoadingScreen.TAG_LOG, "reserv: "+reservation);
            Log.v(LoadingScreen.TAG_LOG, "name: "+golfcourse_name);
        }
        catch(JSONException e)
        {
            Log.v(LoadingScreen.TAG_LOG, String.valueOf(e));
        }
    }
    return null;
}

これは私のonPostExecute()コーディングです:

protected void onPostExecute(String result) {
    // TODO Auto-generated method stub
    super.onPostExecute(result);

if(TYPE=="reservation_page")
    {
        Intent in = new Intent(context, MyReservation.class);
        in.putExtra(TAG_MBRID, memberId);
        in.putExtra(TAG_AMNT, amount);
        in.putExtra(TAG_GCPAMNT, gcpamount);
        in.putExtra(TAG_DATE, date1);
        in.putExtra(TAG_DAY, day);
        in.putExtra(TAG_MNTH, month);
        in.putExtra(TAG_YEAR, year);
        in.putExtra(TAG_TIME, time1);
        in.putExtra(TAG_GLFCRSNAME, golfcourse_name);
        in.putExtra(TAG_PLYRNO, no_of_player);
        context.startActivity(in);
    }
    progress.dismiss();
}
4

2 に答える 2

2

何とか何とか何とか...

あなたのif条件が間違っている..それは次のようになるはずです、

if(TYPE.equals("reservation_page"))

いいえ

if(TYPE=="reservation_page")

2つの文字列を比較するために使用.equals()します。String Class

于 2012-08-18T19:14:27.263 に答える
1

ループに入っていますか、jParser.getJSONfromUrl(URL+memberId)それとも URL からの応答を永遠に待っていますか? デバッガを実行するだけで、何が問題なのかを見つけるのに問題はありません。

于 2012-08-18T19:55:39.693 に答える