2013-03-21 93 views
9

登录后我可以进行FB查询。几分钟(玩游戏)后的Facebook请求失败例外:facebook,android java.lang.IllegalStateException:无法执行任务:任务已在运行

java.lang.IllegalStateException: Cannot execute task: the task is already running 

它,当我打电话

 Request.executeMeRequestAsync(Session.getActiveSession(), 
       new Request.GraphUserCallback() {... 

     Request.executeGraphPathRequestAsync(Session.getActiveSession(), 
       "me/apprequests", new Request.Callback() {... 

     Request request = new Request(session, "me/apprequests", null, 
        null, new Request.Callback() { .... }); 
     RequestAsyncTask status = request.executeAsync(); 

相同的调用被称为登录后立即和他们的工作失败。 我有一个测试应用程序,它的工作原理。但在登录后几分钟后,在真正的应用程序中,它不起作用。

回答

20

你在UI线程上运行吗?包装你的代码runOnUiThread

this

的Facebook SDK mentions是异步调用,必须从UI线程中完成

+1

我正在GL线程上运行它。我想这是ui线程。 – Max 2013-03-21 22:31:30

+0

对。它有帮助。 GL线程不是UI线程。 – Max 2013-03-21 23:02:58

+0

+1。感谢它对我有用 – 2013-07-17 09:08:51

4

您可以使用Request.toHttpConnection(请求),而不是request.executeAsync()