2016-02-28 79 views
0

當我試圖從AccountManager的身份驗證令牌我需要調用定製AccountAuthenticator:身份驗證令牌獲得

AccountManagerFuture<Bundle> getAuthToken(Account account, String authTokenType, Bundle options, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler); 

有什麼AccountManagerFuture<Bundle>AccountManagerCallback<Bundle>之間的區別?我閱讀文檔,但不清楚。

P.S.也許,這不是問題,但我真的無法從Google文檔中理解它。

回答

1

據我的理解,AccountManagerCallback是一個可選的回調函數,用於在通話結果準備就緒時通知您。

由於AccountManagerFuture<Bundle>沒有任何機制在結果準備就緒時通知您,您必須撥打getResult()getResult(long, TimeUnit)才能得到結果。由於這些調用被阻塞,你需要先產生一個新的線程。該文檔明確指出,您不能從主線程調用它們。一旦isDone()方法返回true,當然在主線上使用它們應該是安全的。

回調剛剛收到一個AccountManagerFuture<Bundle>,其中也包含結果(實際上可能與上面的對象相同),但已經完成加載。當結果準備就緒時,這是一種方便的方法,您可以放心地致電AccountManagerFuture.getResult()而無需等待結果,也無需親自產生線索。

+0

謝謝!我明白 –

+0

@Marten你會看看這個問題[issue](http://stackoverflow.com/questions/37945724/no-contacts-for-my-accountmanager-account) – Naroju