2013-03-21 107 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()