问题标签 [android-jetpack-datastore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
69 浏览

android - 使用 Jetpack 数据存储的流量值

我正在尝试在我的使用 jetpack compose 的应用程序上实现一个入职屏幕,该屏幕只会在第一次使用该应用程序时打开,并且“入职”布尔值随后保存在数据存储首选项中。如果您知道存储数据存储首选项的更好方法,我也想知道,我的最小示例显示了问题:

请问如何使用流量值的值?提前致谢

0 投票
0 回答
27 浏览

android - Jetpack 数据存储未在活动和服务之间同步数据

Android 应用程序由可视部分(活动)和绑定服务组成。可视化部分用于配置服务。配置存储在 Jetpack DataStore 中。服务读取每个客户端连接上的配置(在 onBind 中)。当从 Activity 保存新配置时,Service 继续接收旧值。服务仅在重新启动后才能获取新值。这不是我期望看到的。我希望我可以从任何应用程序位置(包括服务)获取实际的数据存储区值。顺便说一句,如果我从应用程序的视觉部分读取,我得到了实际值。

这就是我创建数据存储的方式:

这就是我将值保存到数据存储区的方式:

这就是我从服务中读取数据的方式:

我在 gradle 中导入的库:

如果重要的话,当我从 Activity 和 Service 打印 Context.dataStoreTest 时,我会得到不同的结果:androidx.datastore.preferences.core.PreferenceDataStore@ca5d400androidx.datastore.preferences.core.PreferenceDataStore@dd8964b

编辑:

可能还不支持多进程访问:https ://issuetracker.google.com/issues/167700860

0 投票
0 回答
22 浏览

android - 安装应用程序后只执行一次代码的最佳方法是什么?

如果我想在应用安装后立即执行代码或做一些工作。我尝试将flag存储在datastore中。但是每次打开应用程序后我都必须检查。这是正确的方法还是有更好的解决方案。像我想存储应用程序安装时间的用例。

0 投票
0 回答
27 浏览

android - 如何从 DataStore Preferences 读取字符串?

我试图使用 Composable 中的数据存储来读取用户数据,但无法将值作为字符串读取以放入 Text 中。那是数据存储

和内部可组合:

0 投票
0 回答
35 浏览

android - 从 DataStore 模型中删除不需要的字段会导致 ProtobufDecodingException

所以我在我的 Android 应用程序中使用 DataStore 和 Proto 而不是 SharedPreferences。它工作正常:

如果向对象添加新字段,它也可以正常工作。

但是如果我想删除一些不需要的字段(例如someParamUser模型中),那么我会收到这样的错误:

那么如何正确处理呢?如果删除字段,是否必须添加任何迁移方法?