gpt4 book ai didi

android - CountDownTimer : In Activity, ViewModel 还是单独的类?

转载 作者:搜寻专家 更新时间:2023-11-01 09:20:13 24 4
gpt4 key购买 nike

我想创建一个 CountdownTimer,它将触发更新 UI 的事件(触发弹出窗口、启动动画等)。

我想知道如何清理,这是我的假设和原因:

  1. 一个单独的组件 EventCountdownTimer。然后我可以受益于 LifecycleObserver 的使用,但我想知道如何将信息传回 Activity (我尝试扩展 CountdownTimer 并在 Activity 中使用它,但我有一个错误,无法编译)
  2. Activity 本身中,它是最简单的,但我不确定它是否属于那里,因为它不是 UI 组件,而且我无法使 LifecycleObserver 受益
  3. ViewModel 中。我认为因为它与 Activity 相关并且 CountdownTimer 是一种逻辑数据,它应该放在这里,但这也意味着要观察 Activity 的生命周期,并持有任何与 Activity 相关的ViewModel 中的字段是不好的做法。

您认为最好的选择是什么?为什么?

最佳答案

在 MVVM 模式中,您可以在 ViewModel 中观察到一个 LiveData,UI 会观察到它,并且在值发生变化时,您会相应地更新 UI。可观察值如何改变值,这是您的业务逻辑,所有这些逻辑都应该在您的 ViewModel 中或单独的组件中,ViewModel 将使用这些组件来更新可观察状态。

这将允许您将 UI 与业务逻辑分开,作为您可观察到的业务逻辑,作为两者之间的通信桥梁,而 ViewModel 对 UI 中发生的事情一无所知。简而言之,它只执行它被告知要执行的内容并更新正在观察的变量,然后在 UI 中发生的事情是 UI 的责任,这样您就可以清楚地分离关注点。

关于android - CountDownTimer : In Activity, ViewModel 还是单独的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56733261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com