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”的问题。

相关内容

热门资讯

黑科技新版!aapoker有挂... 黑科技新版!aapoker有挂(wepokeai代打)原先真的是有挂(有挂细节)-哔哩哔哩是一款可以...
黑科技实锤!德扑之星猫腻(aa... 黑科技实锤!德扑之星猫腻(aa poker有外挂吗)原先真的是有挂(揭秘有挂)-哔哩哔哩1、每个玩家...
黑科技科技!德扑ai软件购买(... 黑科技科技!德扑ai软件购买(aapokerai辅助)真是有挂(有挂助手)-哔哩哔哩1、让任何用户在...
黑科技新版!扑克之城可以那假(... 黑科技新版!扑克之城可以那假(wepoke智能ai)最初真的有挂(有挂总结)-哔哩哔哩1、这是跨平台...
黑科技教程!哈糖大菠萝有外挂(... 黑科技教程!哈糖大菠萝有外挂(wpk ai辅助)先前是真的有挂(揭秘有挂)-哔哩哔哩1、起透看视 w...
黑科技app!云扑克是否有外挂... 1、黑科技app!云扑克是否有外挂(微扑克如何让系统发好牌)从来是真的有挂(有挂透明挂)-哔哩哔哩;...
黑科技ai代打!智星德州菠萝安... 您好,wpk ai辅助这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在...
黑科技真的!aapoker透明... 黑科技真的!aapoker透明挂使用教程(wepoke辅助插件)切实存在有挂(有挂神器)-哔哩哔哩1...
黑科技攻略!众合推扑克辅助工具... 黑科技攻略!众合推扑克辅助工具(德扑AI策略软件)竟然是有挂(有挂存在)-哔哩哔哩1、打开德州pok...
黑科技能赢!gg扑克有假(线上... 黑科技能赢!gg扑克有假(线上wpk德州ai机器人)固有真的有挂(有挂教程)-哔哩哔哩;一、线上wp...