Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.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异步http客户端:是否向回调添加参数?_Android_Asynchronous_Android Async Http - Fatal编程技术网

Android异步http客户端:是否向回调添加参数?

Android异步http客户端:是否向回调添加参数?,android,asynchronous,android-async-http,Android,Asynchronous,Android Async Http,我想使用将数据发布到服务器,并使设备上的SQLite与此数据保持同步。因此,基本上我希望整个过程: 将新数据添加到SQLite 使用异步http客户端将新数据发布到服务器 使用其他数据更新onSuccess/onFailure回调中的SQLite行 我的问题是:如何在AsyncHttpResponseHandler中获得正确的行id 让我们创建一个简单的无数据库连接的示例,使其保持简单,但问题相同 private void addPerson(name){ //using a global

我想使用将数据发布到服务器,并使设备上的SQLite与此数据保持同步。因此,基本上我希望整个过程:

将新数据添加到SQLite 使用异步http客户端将新数据发布到服务器 使用其他数据更新onSuccess/onFailure回调中的SQLite行 我的问题是:如何在AsyncHttpResponseHandler中获得正确的行id

让我们创建一个简单的无数据库连接的示例,使其保持简单,但问题相同

private void addPerson(name){

  //using a global client created like this in activity onCreate():
  //AsyncHttpClient client = new AsyncHttpClient();

  //here is a database insert creating a new row, returning the inserted id
  int rowId = <some id returned by the insert>;

  RequestParams param = new RequestParams();
  param.put("name", name);

  client.post("http://www.my.service.url", param, new AsyncHttpResponseHandler() {
    @Override
    public void onSuccess(String response) {
      //The response i get contains an additional value, lets say userkey. I want to update the right database row with that information.
      //How to get the right rowId here?
    }
  });

}    

那么,实现这一目标的最佳方式是什么?重写AsyncHttpResponseHandler以某种方式向回调函数添加参数?

将变量设为final,如

final int rowId = <some id returned by the insert>;

很简单,你可以发送rowId

参数put_id,rowId

然后,服务器将其发送回客户端

这是个好方法,因为它只允许你做一个
AsyncHttpResponseHandler实例。尽可能少地实例化是很好的

我也实现了这一点,作为实现这一点的一种方法,但我不确定这是否是一种好的做法:是吗?并且:如果我没有访问服务器的权限,那么这可能是一个问题。@homtg如果你没有访问权限,你可以通过更改诸如private void addPersonrowId、name等参数来检查