Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 异步任务无限循环_Android_Json_Android Asynctask - Fatal编程技术网

Android 异步任务无限循环

Android 异步任务无限循环,android,json,android-asynctask,Android,Json,Android Asynctask,当我的程序在doInBackground()方法中时,我正在从doInBackground()中的JSON API中检索一些数据。我的日志表明数据已被检索,但doInBackground()仍在无限循环中运行。 我怎样才能阻止这种循环 这是我的doInBackground()编码: @Override protected String doInBackground(String... DATA) { // TODO Auto-generated method stub TYPE

当我的程序在
doInBackground()
方法中时,我正在从
doInBackground()
中的JSON API中检索一些数据。我的日志表明数据已被检索,但
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;
}
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();
}

等等…等等。。。废话

如果条件错误,您的。。应该是,

if(TYPE.equals("reservation_page"))
不是


使用
字符串类的
.equals()
比较两个字符串

废话……废话。。。废话

如果条件错误,您的。。应该是,

if(TYPE.equals("reservation_page"))
不是


使用
字符串类的
.equals()
比较两个字符串

您是否正在进入循环,或者可能是
jParser.getJSONfromUrl(URL+memberId)
永远等待URL的响应?只需运行调试器,找出错误应该不会有问题。

您甚至进入了循环,或者可能是
jParser.getJSONfromUrl(URL+memberId)
永远等待URL的响应?只要运行调试器,找出错误应该不会有问题。

Hmm,doInBackground方法中只有一个循环。reservation.length()的典型值是什么?我建议您将.I()您的length()和int I记录在循环中,看看其中发生了什么。在doInbackground中退出循环后放置一个断点,在onPostExecute中放置另一个断点,您很快就会发现I thinkHmm,doInbackground方法中只有一个循环。reservation.length()的典型值是什么?我建议您将.I()your length()和int I记录在循环中,看看其中发生了什么。在doInbackground中退出循环后放置一个断点,在onPostExecute中放置另一个断点,您很快就会发现我想我的doInbackground()中有许多if语句其余的if语句工作正常,只有这一条是login in循环..我的doInBackground()中有许多if语句,其余的if语句工作正常,只有这一条是login in循环。。