Android AsyncHttpClient post()在Fragment中变成无限循环

时间:2014-06-23 04:32:18

标签: java android post android-fragments asynchttpclient

我正在使用android-async-http-1.4.4.jar库,这是我的代码的样子,我故意遗漏了REMOTE_PHP_URLentityJSON的声明/实现(假设它们是正确实施)。

public class SearchFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_search, container, false);

        mFindButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                final AsyncHttpClient client = new AsyncHttpClient();

                //entityJSON and REMOTE_PHP_URL are implemented correctly

                client.post(getActivity(), REMOTE_PHP_URL, entityJSON, "application/json", new JsonHttpResponseHandler() {
                    @Override
                    public void onSuccess(JSONObject jsonResultObject) {
                        /*Success Code here*/
                    }
                });
            }
        }
    }
}

执行client.post LogCat时显示:

dalvikvm GC_FOR_ALLOC freed 1463K, 21% free 6851K/8628K, paused 4ms, total 4ms

一遍又一遍(无限循环),直到我在DDMS中停止进程。 LogCat不会显示任何(红色)错误。

请记住,上面的代码在我的应用程序中运行其他活动就好了。我认为这可能与它在片段中运行或与上下文或两者都有关的事实有关。我是android的新手,我应该使用除getActivity()以外的其他内容吗?

我已尝试更新为android-async-http-1.4.5.jar,但当我这样做时,由于某种原因,我无法@Override onSuccess()

感谢。

1 个答案:

答案 0 :(得分:0)

我解决了,我的PHP文件没有返回正确的JSONObject。我不小心在我的PHP文件中留下了一些echo用于调试目的而忘记删除它们。 client.post声明没有错!