Facebook Request.callback()在从Service发出请求时不会触发

时间:2013-06-08 13:06:23

标签: android callback facebook-android-sdk

我有一个将照片上传到Facebook相册的服务,它运行正常。问题是从不调用回调(并且服务仍然存在......)

Request uploadPhoto = new Request(Session.getActiveSession(), albumId + "/photos", 
params, HttpMethod.POST,new Request.Callback() {
        public void onCompleted(Response response) {
          //After upload to facebook succeeded, upload the data to the server.
          Log.d(" in calback!!! ", "");
});
uploadPhoto.executeAsync();

1 个答案:

答案 0 :(得分:2)

正如您可能已经注意到的那样,问题是需要从UI线程调用executeAsync()方法才能使回调工作。另一方面,服务在后台运行,因此无法访问UI线程。

由于我认为您不打算在onComplete()中执行任何UI工作,因此一个建议是使用不需要在UI线程上运行的其他API。一个这样的API是executeAndWait(),它将返回一个响应对象,您可以使用它来检查错误。例如:

Response resp = uploadPhoto.executeAndWait();
if(resp.getError() == null){
    //Success
}