使用 AccountManager 存储凭证和刷新 API 令牌

JZC*_*JZC 5 authentication android accountmanager

我遇到的根本问题是我想使用令牌发出 webservice API 请求。令牌是通过使用电子邮件/密码点击身份验证端点获得的。令牌有一个过期时间,因此为了让 Android 应用程序顺利执行,令牌应在无效时刷新,无需用户交互。

我一直在寻求的解决方案是使用 AccountManager ( http://developer.android.com/reference/android/accounts/AccountManager.html ) 来存储电子邮件/密码和令牌。问题是要实例化 AccountManager,我需要向它传递一个 Context ( AccountManager.get(context))。大多数 API 请求发生在上下文不可用的地方,例如 AsyncTasks 或单例管理器类。在上下文中传递是一个混乱的前景,并不总是可能的。

有没有办法让它与 AccountManager 一起使用?或者我是否需要以完全不同的方式管理和刷新我的身份验证令牌?我假设我需要在手机上存储加密的用户电子邮件/密码,但也许这是不可能的。我想知道最佳实践是什么。