Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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/wpf/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
Java 如何跟踪AsynchHttpClient请求_Java_Android - Fatal编程技术网

Java 如何跟踪AsynchHttpClient请求

Java 如何跟踪AsynchHttpClient请求,java,android,Java,Android,嗨,我想让你做点像这样的事。知道如何知道哪个请求对应于哪个项目吗 for (int i=0; i<projects.size(); i++) { post("api/Project/getProductionTime", rp, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONObject res

嗨,我想让你做点像这样的事。知道如何知道哪个请求对应于哪个项目吗

for (int i=0; i<projects.size(); i++) {
    post("api/Project/getProductionTime", rp, new JsonHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response)
        {
            projects.get(i).setAmount(<things from response>)
        }
    }
}

我想您可以在创建JsonHttpResponseHandler实例之前以及在onSuccess块中使用它之后“冻结”您的项目:

final <project type> project = projects.get(i);
就在邮递之前

如果没有,您可以创建一个映射,它可以在项目和请求之间保持一对一的对应关系

更新: 请不要说我无法测试此代码,因为我不知道您的项目结构

// I assume that both Project and MyJsonHttpResponseHandler has hashCode() and equals() methods
// MyJsonHttpResponseHandler is a subcalss of JsonHttpResponseHandler with hashCode() and equals() methods
private final ConcurrentHashMap<MyJsonHttpResponseHandler, Project> map = new ConcurrentHashMap<>();
...
for (int i=0; i<projects.size(); i++) {
    MyJsonHttpResponseHandler handler = new MyJsonHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response)
        {
            Project project = map.get(this);
            project.setAmount(<things from response>);

            map.remove(this);
        }
    };
    map.put(handler, projects.get(i));
    post("api/Project/getProductionTime", rp, handler);
}

我对地图解决方案更感兴趣。我怎么做?比如,我应该制作一个单独的JsonHttpResponseHandler并将其映射到一个项目吗?谢谢你@Anton,我写了自己处理处理程序的方法,但这个想法主要来自你的回答。