首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AccountManager blockingGetAuthToken卡住了

AccountManager blockingGetAuthToken卡住了
EN

Stack Overflow用户
提问于 2011-05-25 05:15:52
回答 2查看 3.7K关注 0票数 2

我一直使用SampleSyncAdapter作为基础来创建我自己的SyncAdapter。添加一个新帐户似乎效果很好,但是一旦我想用AccountManager.blockingGetAuthToken(...它卡住了,几分钟后抛出一个OperarationCanceledException。

有谁知道这里可能出了什么问题吗?除了我向自己的服务器进行身份验证之外,代码与示例几乎相同。

05-24 23:00:23.258: ERROR/SyncAdapter(4961):OperationCanceledExcetpion 05-24 23:00:23.258: ERROR/SyncAdapter(4961):android.accounts.OperationCanceledException 05-24 23:00:23.258: ERROR/SyncAdapter(4961):at android.accounts.AccountManager$AmsTask.internalGetResult(AccountManager.java:1255) 05-24 23:00:23.258: ERROR/SyncAdapter(4961):at android.accounts.AccountManager$AmsTask.getResult(AccountManager.java:1260) 05-24 23:00:23.258:错误/同步适配器(4961):在android.accounts.AccountManager$AmsTask.getResult(AccountManager.java:1181) 05-24 23:00:23.258:错误/同步适配器(4961):在android.accounts.AccountManager.blockingGetAuthToken(AccountManager.java:737)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-25 07:59:21

blockingGetAuthToken方法是一个同步调用getAuthToken的帮助器。

如果您正在访问网络以检索身份验证令牌,您将被阻止,直到请求成功。您应该检查是否可以从应用程序中正确地访问网络资源。

票数 2
EN

Stack Overflow用户

发布于 2014-09-20 13:02:17

最初,方法是一种获取authtoken的便捷方法,而不是调用getAuthToken方法。我必须通过调用runOnUIthread方法来确保不在主线程中。或者,您可以调用默认方法getAuthToken并使用回调来执行下一条指令。对于这个例子。

代码语言:javascript
复制
final AccountManagerFuture<Bundle> future = mAccountManager.getAuthToken(account, AccountConfig.AUTHTOKEN_TYPE, null, this, null, null);
    new Thread(new Runnable() {
        @Override
        public void run() {
            try {

                Bundle bnd = future.getResult();
                final String authtoken = bnd.getString(AccountManager.KEY_AUTHTOKEN); 
                if (authtoken == null) { 
                    return;
                }
                 // this callback interface method 
                logoutCallback.onLogoutFinished(authtoken);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }).start();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6116987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档