android-architecture-components相关内容

是observeForever 生命周期意识吗?

我正在使用 MVVM,并且已经对其进行了不同的实现,但仍然让我怀疑的一件事是如何从我的 ViewModel 的存储库 (Firebase) 获取数据而不将任何生命周期附加到 ViewModel. 我已经从 ViewModel 中实现了 observeForever(),但我认为这不是一个好主意,因为我认为我应该通过回调或转换从我的存储库到我的 ViewModel 进行通信. 我在这里留 ..

如何使用依赖注入在 ViewModel 中注入构造函数

我正在尝试在 https://developer.android.com/jetpack 上实施示例/文档/指南.这解释了 tan android 应用应该如何构建. 当我使用相同的代码时,出现以下错误. java.lang.Class没有零参数构造函数 我发现这个错误与此有关 viewModel = ViewModelProviders.of(this).get(UserProfil ..

可以通过 Fragment 访问 Activity 的 AndroidViewModel 吗?

去年夏天,我开始使用 Android 的架构组件(Room、ViewModel、LiveData)重构我的 Android 应用程序. 我有两个 Room 存储库,其中一个由应用程序的多个视图(片段)访问.因此,我使用了一个 AndroidViewModel,它可以访问这个存储库并在我的 MainActivity 中初始化. new ViewModelProvider(this).get( ..
发布时间:2021-11-27 13:52:35 移动开发

使用 WorkManager 定期提出日常工作请求

如何正确使用来自 Android Jetpack 的新 WorkManager 来安排每天一次的定期工作,该工作应该每天只做一次操作? 我们的想法是使用 WorkManager 检查具有给定标签的工作是否已经存在,否则就开始新的定期工作. 我尝试使用下一种方法来做到这一点: public static final String CALL_INFO_WORKER = "Call wor ..

Android Arch 组件 ViewModel 和 LiveData 在屏幕旋转后触发

我在使用 ViewModel 和 LiveData 架构组件时遇到问题.当使用 fragments 并旋转屏幕时,观察者被触发... 我试图移动 viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)在所有片段生命周期方法中,但没有成功. 我的场景相对简单: 使用电子邮件和密码登录屏幕 用户点 ..

Android WorkManager 中的异步工作者

Google 最近发布了新的 WorkManager 架构组件.通过在 Worker 类中实现 doWork() 可以很容易地安排同步工作,但是如果我想要怎么办在后台做一些异步工作?例如,我想使用 Retrofit 进行网络服务调用.我知道我可以发出同步网络请求,但它会阻塞线程并且感觉不对.是否有任何解决方案或目前不支持? 解决方案 Per WorkManager文档: 默认情况下, ..

导航架构组件 - 对话框片段

是否可以将新的导航架构组件与 DialogFragment 一起使用?我是否必须创建自定义导航器? 我希望将它们与导航图中的新功能一起使用. 解决方案 不,从 1.0.0-alpha01 版本开始,不支持将对话框作为导航图的一部分.您应该继续使用 show() 来显示一个 DialogFragment. ..

如何使用导航架构组件从片段中获取结果?

假设我们有两个片段:MainFragment 和 SelectionFragment.第二个是用于选择某个对象的构建,例如一个整数.从第二个片段接收结果有不同的方法,如回调、总线等. 现在,如果我们决定使用导航架构组件来导航到第二个片段,我们可以使用以下代码: NavHostFragment.findNavController(this).navigate(R.id.action_sele ..

从 ViewModel 观察 LiveData

我有一个单独的类,我在其中处理数据获取(特别是 Firebase),我通常从中返回 LiveData 对象并异步更新它们.现在我想将返回的数据存储在 ViewModel 中,但问题是为了获得所述值,我需要观察从我的数据获取类返回的 LiveData 对象.observe 方法需要 LifecycleOwner 对象作为第一个参数,但我的 ViewModel 中显然没有这个对象,而且我知道我不应该在 ..

导航架构组件 - 将参数数据传递给 startDestination

我有一个活动 A,它启动活动 B 向它传递一些意图数据.活动 B 托管来自新导航架构组件的导航图.我想将该意图数据作为参数传递给 startDestination 片段,该怎么做? 解决方案 好的,感谢 Google 团队的 Ian Lake,我找到了该问题的解决方案.假设您有一个活动 A,它将使用一些意图数据启动活动 B,并且您想在 startDestination 中获取该数据,如果您 ..

手动清除 Android ViewModel?

编辑:这个问题有点过时了,因为 Google 已经让我们能够将 ViewModel 范围限定为导航图.更好的方法(而不是试图清除活动范围模型)是为适当数量的屏幕创建特定的导航图,并为这些屏幕创建范围. 参考 android.arch.lifecycle.ViewModel 类. ViewModel 的范围限定于它相关的 UI 组件的生命周期,因此在基于 Fragment 的应用程序中, ..