在账户管理器中为认证令牌创建实时数据。

问题描述 投票:0回答:1

我正试图为 authTokenAccountManager.

这就是我如何获得auth令牌的。

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)
    }
}

但是我不知道如何将这个例子转换为我的案例。

java android kotlin android-livedata
1个回答
1
投票

根据 另一个链接你可以使用 live-data builder 来制作 coroutine。

val token: LiveData<String> = liveData {
    val tokenValue = someYourFragment.getAuthToken() 
    emit(tokenValue)
}
© www.soinside.com 2019 - 2024. All rights reserved.