问题标签 [lifecycleowner]
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.
android - 将 LifeCycleOwner 传递给 RecyclerView.Adapter 是否安全
考虑绑定到 viewModel 的布局数据。更具体地说,布局使用布局变量来访问这个底层视图模型。每当绑定膨胀时,它的 viewModel 和 lifeCycleOwner 都将被设置。(当然 viewModel 包含一些 liveData,直接绑定到一些视图属性)。
向 RecyclerView(在 Activity 中创建和设置)传递一个 viewModel 列表。对于每个视图模型,一个 ViewHolder 是通过扩展一个新的布局副本及其数据绑定来创建的。
onBindViewHolder
策略是
- 不要触摸视图模型
- 设置
ViewHolder.dataBinding.setViewModel(viewModels[position])
- 但是如何设置 LifeCycleOwner?
- 将 LifeCycleOwner 作为参数传递给适配器好吗?毕竟,适配器只会与 RecyclerView 一样长,而 RecyclerView 则只会与父 Activity 一样长。
- 这是在 RecyclerView 的上下文中使用 dataBinding 的明智方式吗?
图。1。layout_counter.xml :添加到 recyclerView 的单个组件的布局。
代码(如果需要)
- MainViewModel.java
- 适配器.java
- MainActivity.java
- layout_counter.xml
- layout_main.xml
MainViewModel.java
适配器.java
MainActivity.java
layout_counter.xml
layout_main.xml
android - 将活动传递给 LifecycleObserver
我需要将活动传递给 LifecycleObserver 类以执行位置任务:
LocationObserver 在片段中创建和使用:
问题是:将活动传递给 LifecycleObserver 类会导致内存泄漏吗?如果是这样,可能的解决方案是什么?非常感谢您的任何回答/评论!
android - ViewModel 可以实现 LifecycleOwner 吗?
我知道,ViewModel
s 永远不应该保留对 a 的引用,LifecycleOwner
因为它保留对上下文的引用,因此这会导致内存泄漏。但我的问题是,我可以LifecyclerOwner
为ViewModel
自己实现一个吗?有两个有效的回调,onCreate()
在调用视图模型的构造函数时触发,并在调用视图模型的构造函数onDestroy()
时触发onCleared()
。由于LifecycleOwner
只是一个 Java 接口,我认为这不会导致任何内存泄漏。但为了更安全,我问这个。
android - 当 getView() 为 null 时,即 onCreateView() 之前或 onDestroyView() 之后,无法访问 Fragment View 的 LifecycleOwner
我的应用中有一个片段,即 HomeFragment。以下是它的代码:
应用程序编译成功。但就在我在我的设备上打开它时,应用程序崩溃了。这是我在运行应用程序时在 logcat 中遇到的错误:
我假设我试图在错误的位置访问片段视图的生命周期所有者。请帮我解决这个问题。
android - 接近传感器在其 LifeCycleOwner 为 onDestroy 时保持注册状态
我有一个可以拨打电话的项目。调用发生在作为 LifecycleOwner 的 CallActivity 中,而另一个处理传感器的类是 LifecycleObserver。
当用户 A 呼叫用户 B 时,接近传感器已注册并且屏幕关闭。如果用户 A 结束通话并且用户 B 的耳朵仍然靠近设备,则在 CallActivity 处于 onDestroy 时传感器仍处于注册状态。
结果,传感器在不应该靠近手机的地方用手势关闭屏幕。如果用户 B 在 CallActivity 仍然存在时将手机从耳边移开,则传感器已成功取消注册并且应用程序运行正常。
我应该如何处理它。如何确保以正确的方式注销传感器?有没有“全球”的方式?
呼叫活动
ProximitySensor.class
顺便说一句,我如何在没有重复代码的注释中声明更多状态?
android - 在 LifecyclerObserver 中使用 findViewbyId 以传统方式查看绑定
我是生命周期观察者(片段)的新手。我正在尝试将 XML 中定义的视图与片段链接起来。传统上,我们使用findViewById在onActivityCreated方法中执行此操作。我们如何在使用生命周期观察者时做到这一点?
请不要建议数据绑定。在这种情况下,我试图避免它。
android - 如何在对话框中使用 Android LifecycleOwner
我想在 Dialog 中使用 mvvm 但我不知道如何通过LifecycleOwner
观察
我试过了context as LifecycleOwner
,context as AppCompatActivity
但都失败了
请帮助我,谢谢!
android-livedata - 片段中的requireActivity而不是requireContext
我在片段中有一个 LiveData 观察者,有时里面的代码Observer{}
会抛出错误
它正在发生,因为requireActivity()
正在返回null
所以异常
我确认没有我的片段与活动分离的情况。我怀疑可能会发生崩溃,因为我没有将生命周期所有者引用传递给观察者?