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

相关内容

热门资讯

透视规律!德普之星app安卓版... 透视规律!德普之星app安卓版破解版(透视)潮汕汇鱼虾蟹辅助(一贯真的是有辅助辅助器)-哔哩哔哩潮汕...
据通报!wepoker怎么挂飞... 据通报!wepoker怎么挂飞机(透视)兴动互娱辅助工具(一直真的有辅助下载)-哔哩哔哩在进入兴动互...
透视透视!wepoker插件功... 透视透视!wepoker插件功能辅助器(透视)朱雀开心罗松开挂(原来是真的辅助修改器)-哔哩哔哩朱雀...
目前!pokernow辅助工具... 目前!pokernow辅助工具(透视)微乐小程序礼包码(一直存在有辅助平台)-哔哩哔哩;1、微乐小程...
透视工具!pokemmo手机版... 透视工具!pokemmo手机版修改器(透视)博雅红河西元(都是是真的辅助安装)-哔哩哔哩博雅红河西元...
透视辅助!wepoker有没有... 透视辅助!wepoker有没有插件(透视)浙江宝宝游戏辅助工具(其实真的有辅助软件)-哔哩哔哩1、任...
透视规律!wpk辅助软件(透视... 透视规律!wpk辅助软件(透视)丽水都莱app辅助(其实是真的辅助插件)-哔哩哔哩在进入丽水都莱ap...
透视软件!wepoker辅助器... 透视软件!wepoker辅助器安装包定制(透视)九九山城万州版脚本(切实有辅助软件)-哔哩哔哩1、九...
为了进一步!模拟器打开hhpo... 为了进一步!模拟器打开hhpoker(透视)丽水都莱app辅助(确实真的是有辅助软件)-哔哩哔哩所有...
一直以来!wepoker安装教... 一直以来!wepoker安装教程(透视)wepoker辅助软件(总是存在有辅助辅助器)-哔哩哔哩1、...