class TokenRepository {
private var accessToken: String? = null
fun getAccessToken() = accessToken
fun saveAccessToken(token: String) { accessToken = token }
fun clearAccessToken() { accessToken = null }
}
在您的 ViewModel 中,与存储库交互:
class MyViewModel(private val tokenRepository: TokenRepository) : ViewModel() {
fun getToken() = tokenRepository.getAccessToken()
fun setToken(token: String) = tokenRepository.saveAccessToken(token)
}
最佳方法:存储库中的内存缓存 使用内存变量将访问令牌存储在存储库中:
在您的 ViewModel 中,与存储库交互:
为什么有效:
由于进程死亡限制和 UI 耦合问题,请避免使用SavedStateHandle来存储令牌。仅将其用于特定于 UI 的状态。