AndroidPreferencesDataStoreFlowDoesn'tEmitSameValue
创始人
2024-10-09 14:01:50
0次

可以通过以下代码示例解决此问题:

  1. 创建一个包含DataStore的viewmodel

class MyViewModel(application: Application) : AndroidViewModel(application) {

// Initialize DataStore
private val dataStore = application.applicationContext.createDataStore(
    name = "my_preferences"
)

// Get the preference value from DataStore
val myPreferenceFlow: Flow = dataStore.data
    .catch { exception ->
        // DataStore throws an exception if an error occurs
        if (exception is IOException) {
            emit(emptyPreferences())
        } else {
            throw exception
        }
    }
    .map { preferences ->
        preferences[MY_PREFERENCE_KEY] ?: ""
    }

}

  1. 在Activity/Fragment中使用此viewmodel并观察值变化

class MyActivity : AppCompatActivity() {

private lateinit var viewModel: MyViewModel

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.my_activity)

    // Initialize viewModel
    viewModel = ViewModelProvider(this).get(MyViewModel::class.java)

    // Observe the changes in myPreferenceFlow
    lifecycleScope.launch {
        viewModel.myPreferenceFlow.collect { value ->
            // Do something with the value
            Log.d("MyPreference", "Value = $value")
        }
    }
}

}

这样就可以获得DataStore的动态更新值并且不会遇到“Android Preferences DataStore Flow Doesn't Emit Same Value”的问题。

相关内容

热门资讯

必看攻略辅助!wpk透视辅助方... 必看攻略辅助!wpk透视辅助方法,德扑之星透视神器安装(往昔真的有辅助)主打本地运行的 AI 黑科技...
一分钟了解!开挂!wepoke... 一分钟了解!开挂!wepoker轻量版透视,德普之星透视软件神器(一向存在有开挂)主打本地运行的 A...
普及知识辅助挂!wpk辅助购买... 普及知识辅助挂!wpk辅助购买,微扑克透视软件下载教程(确实真的是有辅助挂)AI 是一款可以让一直输...
分辨真假开挂!wepoker好... 一款 AI 游戏攻略黑科技工具上线,查攻略效率直接开挂。它整合版本更新、装备搭配、BOSS 打法、牌...
分享开挂内幕辅助!wpk俱乐部... 很多人使用云端 AI 时,都担心wpk俱乐部怎么作弊、内部资料上传带来隐私风险。这款本地运行的 AI...
查到实测辅助辅助器!wpk作弊... 很多人使用云端 AI 时,都担心wpk作弊、内部资料上传带来隐私风险。这款本地运行的 AI 黑科技,...
记者发布辅助器!微扑克辅助下载... 『标题:当前标题』主打赛后复盘的 AI 游戏攻略黑科技走红,对局总结能力开挂。上传对局回放或者战绩截...
热门推荐辅助挂!wpk俱乐部是... 一款 AI 游戏攻略黑科技工具上线,查攻略效率直接开挂。它整合版本更新、装备搭配、BOSS 打法、牌...
大家学习交流透视挂!德扑之星辅... 大家学习交流透视挂!德扑之星辅助器怎么用,WPK确实有挂神器(一向有透视挂)主打本地运行的 AI 黑...
一分钟揭秘透视!wepoker... 您好,一分钟揭秘透视!wepoker私人定制透视,微扑克透视软件下载工具(素来是有透视)这款游戏可以...