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

相关内容

热门资讯

交流学习经验!新海豚辅助工具(... 交流学习经验!新海豚辅助工具(透视)佛手在线辅助(详细开挂外开挂教程);1、不需要AI权限,帮助你快...
今日百科!随意玩透视辅助软件(... 今日百科!随意玩透视辅助软件(透视)顺欣茶楼辅助软件(详细开挂外开挂教程)随意玩透视辅助软件辅助器中...
玩家必看教程!!万能游戏辅助器... 玩家必看教程!!万能游戏辅助器脚本(透视)爱玩娱乐暗堡辅助(详细开挂外开挂教程);1、万能游戏辅助器...
推荐十款!兴动互娱软件下载辅助... 推荐十款!兴动互娱软件下载辅助(透视)传送屋辅助(详细开挂外开挂教程)1、兴动互娱软件下载辅助透视辅...
重大消息!皇豪互娱控制系统ap... 重大消息!皇豪互娱控制系统app(透视)新畅游互娱科技(详细开挂外开挂教程)进入游戏-大厅左侧-新手...
指导大家!雀神广东麻将透视视频... 指导大家!雀神广东麻将透视视频(透视)贪玩互娱辅助(详细开挂外开挂教程)1、进入游戏-大厅左侧-新手...
我来教大家!福建天天开心王国辅... 我来教大家!福建天天开心王国辅助(透视)贪吃蛇辅助器(详细开挂外开挂教程)1、实时福建天天开心王国辅...
一分钟了解!山西扣点点挂手机挂... 一分钟了解!山西扣点点挂手机挂(透视)wepoker辅助工具(详细开挂外开挂教程)1、该软件可以轻松...
玩家攻略!越局吧可以看到别人底... 玩家攻略!越局吧可以看到别人底牌(透视)微乐家乡自建房辅助app(详细开挂外开挂教程);1、构建自己...
一分钟了解!随意玩辅助软件(透... 一分钟了解!随意玩辅助软件(透视)全来潜山跑风辅助器(详细开挂外开挂教程);1、全来潜山跑风辅助器a...