android - 从服务发出请求时 Facebook Request.callback() 不会触发

标签 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();

最佳答案

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

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

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

关于android - 从服务发出请求时 Facebook Request.callback() 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16999812/

相关文章:

使用类成员的 C++ 回调

Android - 从 Android 应用程序更新 Facebook 状态

android - 如何避免在 Android Facebook SDK 中显示已授权应用对话框

android - 如何添加不确定的进度条

python - Tkinter Canvas 自动调整大小

java - 从服务器编码 RMI 客户端回调时遇到问题 - UnmarshalException ClassNotFoundException

android - 无法解析 : com. facebook.android :facebook-android-sdk:[4, 5)

java - 来自 EdittextPreference 的文本

android - Ionic 2 - 错误:net::ERR_CONNECTION_TIMED_OUT 在 android 设备上运行时

java - Android资源未找到异常?