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怎么选牌(透视)福建天天开心辅助器是真的吗(确实真的是有辅助辅助器)-哔哩哔...
最终!aapoker真的假的(... 最终!aapoker真的假的(透视)全民内蒙古辅助(一直是有辅助app)-哔哩哔哩在进入全民内蒙古辅...
一直以来!红龙poker作必弊... 一直以来!红龙poker作必弊指令(透视)皮皮辅助软件演示(确实是有辅助工具)-哔哩哔哩1、皮皮辅助...
透视有挂!德州透视竞技联盟(透... 透视有挂!德州透视竞技联盟(透视)新玄龙辅助工具(果然是真的辅助app)-哔哩哔哩1、新玄龙辅助工具...
连日来!hhpoker辅助挂是... 连日来!hhpoker辅助挂是真的吗(透视)灯笼众娱脚本(一贯是有辅助软件)-哔哩哔哩1、完成灯笼众...
现有关情况通报如下!xpoke... 现有关情况通报如下!xpoker怎么作必弊(透视)心悦辅助工具(果然真的有辅助工具)-哔哩哔哩1、金...
针对!pokernow辅助控制... 针对!pokernow辅助控制(透视)杭州边锋辅助软件(切实真的是有辅助修改器)-哔哩哔哩1、玩家可...
今天上午!hhpkoer辅助器... 今天上午!hhpkoer辅助器(透视)新海贝之城万能辅助器(一贯存在有辅助工具)-哔哩哔哩1、玩家可...
透视线上!wepoker正确养... 透视线上!wepoker正确养号方法(透视)多乐跑胡子辅助(一贯存在有辅助下载)-哔哩哔哩透视线上!...
透视有挂!德州透视脚本(透视)... 透视有挂!德州透视脚本(透视)来来拼十辅助免费辅助(总是是真的辅助软件)-哔哩哔哩来来拼十辅助免费辅...