问题标签 [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 - Android - 在什么情况下/用例我想实现一个自定义 LifecycleOwner
https://developer.android.com/topic/libraries/architecture/lifecycle#implementing-lco
文档说Fragments and Activities in Support Library 26.1.0 and later already implement the LifecycleOwner interface.
如果我们可以使用 Activity 或 Fragment 的 LifecycleOwner 来注册 LiveData 对象或让它调用我们注释的方法,这将非常有用
在我们的自定义类中。
但我们也可以选择实现自定义 LifecycleOwner。在什么情况下有一个自定义 LifecycleOwner 是有意义的,考虑到它会使事情复杂化,因为现在我们必须手动跟踪生命周期事件,例如:
?
android - Fragment 中的观察者有效,但在 Activity 中无效
我在 Fragment 中创建了一个完美工作的观察者(当 Int 增加时它会触发祝酒词),但是当我尝试将此代码移动到活动中时,观察者似乎没有连接,并且当 LiveData 更改时它不会更新.
片段(这有效!):
活动(当我将观察者放在活动中时它没有!):
ViewModel(都在 VM 中调用相同的函数):
回购(从 VM 调用):
每次登录尝试时都会增加 loginAttempt.value,并且我已经验证了这在 Logcat 中有效。
有关信息,makeToast 只是一个创建合理 Toast(文本和位置)的函数:
我假设它与 lifeCycleOwner 有关,但我不知所措!
android - getLifecycle() 在 ComponentActivity 的构造函数中返回 null。请确保您正在懒惰地构建您的生命周期
我收到此错误“原因:java.lang.IllegalStateException:getLifecycle() 在 ComponentActivity 的构造函数中返回 null。请确保您正在懒惰地构建您的生命周期”
改变后
来自 Place Play 服务实施“com.google.android.gms:play-services-places:16.0.0”
至
新 Places SDK 客户端实现“com.google.android.libraries.places:places:2.1.0”
android - java.lang.IllegalStateException:pb 在 TopHeadlinesFragment 处不能为空?
我正在开发新闻应用程序,我已经实现了带有进度条的 livedata,但我的代码中出现了以下异常
在我的 TopHeadlinesFragment.kt 类下面
在 fragment_top_headlines.xml 下面
我遵循了所有 stackoverflow 的建议,但它并没有解决我的问题。我想知道我到底在哪里犯了错误,为了避免异常,我必须做什么。
我试过的
1.使缓存重新启动无效 2.清理并重建项目 3.我检查了进度条已经初始化。4.我也试过这个stackoverflow链接Android:Progressbar must not be null using Kotlin 5.我试过声明为全局变量的进度条它不起作用
在我的 MainViewModel.kt 下面
我也尝试过以下提供的答案,但没有解决问题
android - LifecycleObserver doesn't call onPause event on custom View - Android
I am trying to implement LifecycleObserver on a custom RelativeLayout View. I am able to get the ON_RESUME event but for some reason the ON_PAUSE or ON_DESTROY event doesn't get triggered.
What am I missing?
android-studio - ViewModel 中的生命周期所有者 - Android Studio
我正在尝试在应用程序中实现 ViewModel,该应用程序使用 FirestorepagingAdapter 从 Firestore 获取一些数据,并将其显示在 recyclerview 中。我已经获取所有数据并显示它,但仍然没有使用 ViewModel,它都在 MainActivity
我正在尝试将创建 Firestorepagingoptions 的代码移动到视图模型,并在我的 MainActivity 中,只需创建适配器并设置为 recyclerview。但是 FirestorePagingOptions.Builder 需要设置一个 LifecycleOwner 而我不知道如何在我的 ViewModel 中获取它,或者我根本不应该在 ViewModel 上这样做,我对这些 ViewModel 很迷茫,所以如果有人有任何建议,我将不胜感激。非常感谢。
这是我在 MainActivity 上的原始代码(尚未更改以从 Viewmodel 获取数据)
还有我的 ViewModel 上的代码
android - 从 Fragment 返回时,Kotlin ViewModel onchange 被多次调用(使用生命周期实现)
我正在使用 MVVM 架构。
编码
当我单击一个按钮时,会触发orderAction方法。它只是发布一个枚举(将添加进一步的逻辑)。
视图模型
片段观察 LiveData obj 并调用打开新片段的方法。我在这里使用导航器,但我认为有关它的详细信息在这种情况下没有用处。请注意,我正在使用viewLifecycleOwner
分段
问题
当我关闭打开的片段(使用 findNavController().navigateUp())时,会立即调用 DashboardFragment 的 Observe.onChanged 并再次打开片段。
我已经检查了这个问题并尝试了上述链接中提出的所有解决方案(如您在注释代码中所见)。只有这个解决方案有效,但它不是很优雅,并迫使我每次都进行检查。
我想尝试一个更可靠和最优的解决方案。
请记住,在该线程中没有生命周期实现。
android - 安卓工作管理器
我无法弄清楚如何使用 Android 的 Workmanager。本质上,我想发出一个带有时间延迟的 OneTime 请求,确定成功,然后做一些事情。工人阶级什么都不做。
我期待的是延迟后返回的成功代码。也就是说,我的 Workmanager 代码的唯一目的是提供延迟。
我知道还有许多其他方法可以影响延迟,但我的理解是,Android 比 AlarmManager 更好地“保护” Workmanager Workers。
不幸的是,我做不到。
这是我所做的
- 扩展我的活动以包括 LifecycleOwner
添加了所需的getLifeCycle方法,如下
/li>这是工人阶级
/li>这是我的操作代码
/li>
我尝试了许多变体,但都没有成功。上面的代码导致堆栈溢出崩溃。帮助!
android - ViewModelProvider 嵌套片段无法接收数据
下面是我的应用程序的结构
如果需要,应用程序流会在下方直观地显示。
描述:我有 DataViewModel,它允许我的应用程序将数据从 MainActivity 和不同的 Fragment 发送到另一个 Fragment 或子 Fragment。
在我的 DataViewModel 中,我有两个数据需要发送到 viewpager 内视图中的 CanvasView(扩展视图)。第一个数据来自 MainActivity(传感器数据),另一个数据来自 HomeFragment(状态数据)到 viewPager 内的视图。<viewpager 中的每一个<view 中的 CanvasView< 接收来自 Mainactivty 和 HomeFragment 的数据。这些视图接收基于哪个视图对用户可见的数据。(我只是检查 viewpager 的当前位置并将位置发送到这些 CanvasView 内的 viewmodel 观察者并接收数据)。
问题:当我第一次启动应用程序时,我在 firstViewFragment 上收到了数据,但是当我滑动时,我无法再在这些 CanvasView 的观察者中收到数据,除了最后一个。无论我滑动多少次,最后一个总是接收数据,但以前的视图停止接收数据。
java - 尝试使用已破坏的生命周期创建 LifecycleCamera
我正在尝试为我的屏幕录像机应用程序制作浮动cameraview。
FloatingViewService.java
layout_floating_widget.xml
BackgroundService.java检查下面的代码我如何调用 FloatingViewService.java
错误:
注意 :此代码作为单独的模块工作,但是当我连接到屏幕录像机时它不起作用,我已经在 manifests.xml 中设置了所有必要的权限和服务