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

相关内容

热门资讯

透视脚本!hhpoker有没有... 透视脚本!hhpoker有没有作弊挂,新道游科技透视免费版下载网页,高科技教程(有挂脚本)1、新道游...
透视ai代打!wepoker辅... 透视ai代打!wepoker辅助器有哪些功能,花花生活圈辅助器,微扑克教程(有挂插件)1、起透看视 ...
透视系统!德扑圈透视,菠萝辅助... 透视系统!德扑圈透视,菠萝辅助app,2025教程(有挂黑科技);菠萝辅助app辅助器中分为三种模型...
透视讲解!wepoker作弊方... 透视讲解!wepoker作弊方法,兴动互娱辅助脚本下载,透牌教程(有挂插件)1、透视讲解!wepok...
透视软件!pokemmo手机脚... 透视软件!pokemmo手机脚本,微友三代辅助,详细教程(有挂规律)1、操作简单,无需注册,只需要使...
透视智能ai!htx矩阵wep... 透视智能ai!htx矩阵wepoker辅助,聚财平台辅助,德州教程(有挂攻略)1、聚财平台辅助透视辅...
透视攻略!线上德州的辅助器是什... 透视攻略!线上德州的辅助器是什么,指尖四川脚本,曝光教程(有挂攻略);1、指尖四川脚本系统规律教程、...
透视安卓版!wepoker透视... 透视安卓版!wepoker透视有吗,小闲54辅助,解密教程(有挂细节);1、在小闲54辅助ai机器人...
透视安卓版!wepoker怎么... 透视安卓版!wepoker怎么增加运气,九江讨赏插件,微扑克教程(有挂教程)1、起透看视 九江讨赏插...
透视系统!WePOker有没有... 透视系统!WePOker有没有透视方法,蜀山四川小程序辅助,规律教程(有挂解密)1、玩家可以在蜀山四...