5得票2回答
仓库方法在异步 Retrofit 调用中设置 LiveData 值

在阅读 Android Architecture Components 官方指南时,关于使用 Retrofit 请求的存储库层解释中有一段代码我无法完全理解: public class UserRepository { private Webservice webservice;  ...

3得票1回答
Room的日历类型转换器 (Kotlin)

我正在尝试使用以下TypeConverter在我的Room数据库中持久化时间戳: class Converters { @TypeConverter fun fromTimestamp(value: Long?): Calendar? { if(value...

19得票3回答
更新到WorkManager 1.0.0-alpha09后编译错误

我正在尝试使用架构组件中的WorkManager。我已将compileSdkVersion和targetSdkVersion从27升级到28。 gradle同步成功完成。但是仍然出现编译时错误。由于'android.support:design',android.support库使用版本28....

108得票15回答
map()和switchMap()方法有什么区别?

LiveData类的这两种方法有何区别?官方文档和教程对此相当模糊。在map()方法中,第一个参数称为source,但在switchMap()中,它被称为trigger。这背后的原因是什么?

6得票2回答
没有传递应用程序上下文实例化AndroidViewModel?

我目前正在研究 Android Room with a View 示例应用程序,完整源代码可在此处找到。在这个项目中,定义了一个类型为AndroidViewModel 的WordViewModel: class WordViewModel(application: Application) ...

24得票3回答
将LiveData<PagedList<X>>映射到LiveData<PagedList<Y>>

我需要将领域对象映射为UI对象,并使用一个实时的分页列表进行展示。 我试图将 LiveData&lt;PagedList&lt;X&gt;&gt; 映射到 LiveData&lt;PagedList&lt;Y&gt;&gt;,并将 PositionalDataSource&lt;X&gt; ...

3得票2回答
Android room数据库不立即将数据插入数据库

我在我的Android项目中使用Room,一切都运作良好,直到有一天我发现Room不能立即将数据插入数据库。 如何重现 当我运行命令appdatabase.getUserDao().insert(user)并在2秒钟后拔出手机电池并导出数据库后,我发现数据没有插入数据库。这是100%确定的...

8得票1回答
为什么使用JetPack Navigation导航后,在片段中的onDestroyView会立即被调用

当您导航到不同的碎片时,onDestroyView() 立即被调用,这种行为是否正常?我使用以下方法进行导航: findNavController().navigate(R.id.action_homefragment_to_detailsfragment) 有没有办法避免这种情况?或者...

7得票2回答
如何为具有许多字段的活动实现ViewModel

问题 有一个设置屏幕(SettingsActivity),包含约10个文本字段和3个按钮。这些文本字段,在onClick中打开对话框以插入/编辑文本,其内容保存在SharedPreferences中。这些按钮执行异步请求来检索内容并将其保存到其他地方。在请求过程中,会显示一个对话框来通知进度...

8得票1回答
架构组件中使用@OnLifecycleEvent注释的方法是如何与LifecycleOwner连接起来的?

看起来我们不需要使用 kapt 来使 @OnLifecycleEvent 注解工作。那么它们是如何连接起来的呢?是某种运行时注解处理吗? 我想知道使用这些注解的成本是什么。使用它们会影响应用程序启动时间吗?或者项目编译时间?