2011-04-24 71 views
2

我在我的應用程序中集成了FB登錄。我在處理的異步性方面遇到問題。如果我沒有登錄到FB,那麼會顯示一個對話框來輸入我的密碼,但是當我已經登錄時,整個過程變得異步,並且我的原始活動也會通過。這給我造成了問題,因爲我的邏輯取決於FB認證的結果。我相信其他人肯定會遇到它。我如何處理這個問題?facebook android sdk認證是異步的。如何處理它?

編輯:

換句話說我的問題是,我打電話的功能立即返回。它通過產生一個線程來完成它,並通過我實現的回調返回結果。在這種情況下,我想等待該函數返回(或要調用的回調函數),並且僅在之後繼續處理。

任何指針,非常感謝。

感謝 - P

+0

你使用Facebook SDK?可能將你正在運行的某些代碼粘貼到問題中,我相信他們已經添加了某種回調來掛鉤。 – schwiz 2011-04-24 19:34:04

回答

2

好了,你已經與網絡交互將是異步​​的幾乎一切,所以在你的應用程序的設計意識到這一點。在Android中處理這類邏輯最受歡迎的方式之一就是創建AsyncTasks。您將啓動身份驗證請求AsyncTask並在執行操作時顯示進度對話框。返回時,隱藏進度對話框並繼續使用應用程序邏輯。

+2

要麼是線程,要麼是線程。 – 2011-04-24 16:49:22

+0

這不是我的問題。其實相反。請參閱我對上述問題所做的修改。調用函數產生一個線程並立即返回。我想在做我的事情之前等待線程功能完成。 – user220201 2011-04-24 17:35:21

+0

我想我仍然對你的問題感到困惑,抱歉。 – dmon 2011-04-24 18:26:00

0

凍結主線程直到異步操作完成是一個非常糟糕的主意。這是異步的原因。顯示模式進度窗口更好,讓控制返回到操作系統並在完成後恢復工作。通過這種方式,您可以獲得兩全其美的體驗 - 用戶在身份驗證結束之前無法做任何事情,並且您不會凍結手機。