java - 在 Account Manager 中为 Auth Token 创建实时数据
问题描述
我正在尝试为authToken
in创建实时数据AccountManager
。
这就是我获取身份验证令牌的方式。
suspend fun Fragment.getAuthToken(): String? {
val am: AccountManager = AccountManager.get(activity)
val accounts: Array<out Account> = am.getAccountsByType(getAccountType())
var authToken: String? = null
if (accounts.isNotEmpty()) {
val account = accounts.first()
withContext(Dispatchers.IO) {
authToken = am.blockingGetAuthToken(account, getAccountType(), true)
}
}
return authToken
}
根据文档,我应该这样做:
class StockLiveData(symbol: String) : LiveData<BigDecimal>() {
private val stockManager = StockManager(symbol)
private val listener = { price: BigDecimal ->
value = price
}
override fun onActive() {
stockManager.requestPriceUpdates(listener)
}
override fun onInactive() {
stockManager.removeUpdates(listener)
}
}
但是我不知道如何转换示例以匹配我的情况。
解决方案
根据另一个链接 ,您可以将实时数据构建器用于协程:
val token: LiveData<String> = liveData {
val tokenValue = someYourFragment.getAuthToken()
emit(tokenValue)
}
推荐阅读
- android - 更新到 AndroidStudio 3.2,尝试构建时出现问题:找不到 AndroidManifest.xml 文件,使用生成文件夹
- dart - Flutter 中的 PlatformException(sign_in_failed, Status{statusCode=CANCELED, resolution=null}, null) 错误
- javascript - 无法使用数组长度从 ajax 调用打印 JSON 数组
- c# - Wix - 托管引导程序应用程序升级问题
- jquery - ASP.Net MVC:如何通过 jquery ajax 将数据从客户端传递到 asp.net mvc 操作
- excel - 带输入的 VBA 子
- c# - 如何使用 c# 在 SQL Server 中循环遍历不同的 ID
- php - 无法在本地运行 Pydio
- scala - 将 sparkSession 传递给 Scala 中的函数 - Spark 2.1
- javascript - 如何在javascript中将数组与json数据进行比较并在另一个数组中显示匹配的json结果