Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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
facebook android sdk身份验证是异步的。如何处理?_Android_Facebook - Fatal编程技术网

facebook android sdk身份验证是异步的。如何处理?

facebook android sdk身份验证是异步的。如何处理?,android,facebook,Android,Facebook,我正在我的应用程序中集成FB登录。我对进程的异步性质有问题。如果我没有登录FB,那么我会看到一个对话框来输入我的passwd,但是当我已经登录时,整个过程会变得异步,并且我的原始活动会一直运行。这给我带来了问题,因为我的逻辑取决于FB身份验证的结果。我相信一定是其他人碰上了。我该怎么处理 编辑: 换句话说,我的问题是我正在调用的函数正在立即返回。它通过生成一个线程来完成任务,并通过我实现的回调返回结果。在这个场景中,我希望等待该函数返回(或调用回调),然后继续处理 非常感谢您的指点 谢谢 -P好

我正在我的应用程序中集成FB登录。我对进程的异步性质有问题。如果我没有登录FB,那么我会看到一个对话框来输入我的passwd,但是当我已经登录时,整个过程会变得异步,并且我的原始活动会一直运行。这给我带来了问题,因为我的逻辑取决于FB身份验证的结果。我相信一定是其他人碰上了。我该怎么处理

编辑:

换句话说,我的问题是我正在调用的函数正在立即返回。它通过生成一个线程来完成任务,并通过我实现的回调返回结果。在这个场景中,我希望等待该函数返回(或调用回调),然后继续处理

非常感谢您的指点

谢谢
-P

好吧,几乎所有与web交互的东西都是异步的,所以在设计应用程序时要注意这一点。在Android中,处理这种逻辑的最被接受的方法之一是创建异步任务。您将启动身份验证请求任务,并在其执行操作时显示进度对话框。当它返回时,隐藏进度对话框并继续应用程序逻辑

在异步操作完成之前冻结主线程是一个非常糟糕的主意。这是异步的原因。最好显示一个模式进度窗口,让控件返回操作系统并在完成后继续工作。通过这种方式,您可以两全其美—在身份验证结束之前,用户无法执行任何操作,并且您不会冻结手机。

这里是另一个身份验证示例代码,您可以使用RequestListener获取回调等


这不是我的问题。事实恰恰相反。请参阅我对上述问题所做的编辑。调用函数生成一个线程并立即返回。我想等待线程功能完成后再做我的事情。我想我仍然不知道你的问题是什么,对不起。你在使用facebook sdk吗?可能会在遇到问题的地方粘贴一些代码,我相信他们已经添加了某种回调来钩住。