gpt4 book ai didi

java - Android - 定时 UI 事件(带暂停/恢复)

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

我希望在 Android 上创建触发 UI 更改(如 Toast)的定时事件。我已经知道您可以使用 Handler 对象的 postDelayed(runnable, timeDelay) 方法 ( see this page for a great example) 来做到这一点。

这是一个转折点:我还需要能够暂停和恢复这些事件的倒计时。因此,当用户暂停屏幕计时器时,它也会在每个事件触发之前暂停倒计时。

想到的一种方法是在新的 Thread(不是 UI 线程)上创建一个 Handler 对象,并使用 postDelayed< 对我的事件进行排队;然后我会使用 this method 暂停或恢复整个 Thread 的执行如所须。这里的主要问题是弄清楚如何让事件在触发后在 UI 线程上运行。

我能想到的唯一其他方法是每秒检查一次计时器是否在 UI 线程上对照我所有事件的列表(蛮力),这非常困惑。

如果有人对此有任何想法或解决方案,那就太好了!

最佳答案

如果所有事件都需要暂停相同的时间,您可以跟踪累积了多少暂停时间,并在 handleMessage 上使用另一个具有该延迟时间的 postDelayed 重新发布。

需要添加一些逻辑以确保您将它们全部延迟到适当的时间。例如,如果在游戏暂停时将新事件添加到队列中,您不希望延迟整个暂停时间重新发布它。

您可以结合您的想法(具有所需开始时间的事件队列)。暂停结束时更新开始时间。使用一个名为“processQueue”的事件——将其设置为仅在您认为下一个事件应该发生时触发。如果下一个事件应该发生的时间由于暂停而延迟,您可以删除“processQueue”事件并重新发布。

关于java - Android - 定时 UI 事件(带暂停/恢复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3168256/

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