【问题标题】:Get value from shared preferences in first time is not working第一次从共享偏好中获取价值不起作用
【发布时间】:2018-10-18 22:09:06
【问题描述】:

我将设备令牌保存在共享首选项中,但我只能在第二次运行时获得它。 这是代码:

class PreferencesHelper(context: Context) {

companion object {
    private val usernameKey = "username_key"
    private val passKey = "pass_key"
    private val tokenKey = "token_key"
}

private val preferences = PreferenceManager.getDefaultSharedPreferences(context)

var username = preferences.getString(usernameKey, "")
    set(value) = preferences.edit().putString(usernameKey, value).apply()

var password = preferences.getString(passKey, "")
    set(value) = preferences.edit().putString(passKey, value).apply()

var token = preferences.getString(tokenKey, "")
    set(value) = preferences.edit().putString(tokenKey, value).apply()

我在片段中访问它,并将令牌存储在 firebase 服务或应用程序初始化中

  prefs = PreferencesHelper(context!!)
  preds.token... //returns empty string.

什么可能导致首选项仅在第一次运行后才起作用?

【问题讨论】:

    标签: android kotlin sharedpreferences


    【解决方案1】:

    你没有正确地做吸气剂。事实上,你根本没有这样做。

    = 用于变量,即使在 Kotlin 中,也会在初始化时对其进行赋值,并且永远不会再分配。

    变化:

    var username = preferences.getString(usernameKey, "")
        set(value) = preferences.edit().putString(usernameKey, value).apply()
    
    var password = preferences.getString(passKey, "")
        set(value) = preferences.edit().putString(passKey, value).apply()
    
    var token = preferences.getString(tokenKey, "")
        set(value) = preferences.edit().putString(tokenKey, value).apply()
    

    收件人:

    var username: String
        get() = preferences.getString(usernameKey, "")
        set(value) = preferences.edit().putString(usernameKey, value).apply()
    
    var password: String
        get() = preferences.getString(passKey, "")
        set(value) = preferences.edit().putString(passKey, value).apply()
    
    var token: String
        get() = preferences.getString(tokenKey, "")
        set(value) = preferences.edit().putString(tokenKey, value).apply()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多