Android 将服务的状态绑定到UI

Android 将服务的状态绑定到UI,android,service,timer,Android,Service,Timer,假设我想在android中实现倒计时。 即使活动已关闭,计时器也应滴答作响。所以我需要服务 计时器UI在片段中。 它有一个按钮(开始/暂停) 计时器服务应有两种运行和暂停状态 当它运行时,按钮标签应该是“暂停”,如果它被暂停,那么它应该是“恢复”。你知道,比如说音乐播放器 如果活动总是运行的话,这不会是一个问题。然后,我会将意图发送到活动,它会适当地更改按钮标签。你知道,就像观察者模式。 但活动可能会被关闭。因此,如果活动已关闭,我应该如何从服务更新视图?您需要将活动本地绑定到服务中 我强烈建议

假设我想在android中实现倒计时。 即使活动已关闭,计时器也应滴答作响。所以我需要服务

计时器UI在片段中。 它有一个按钮(开始/暂停)

计时器服务应有两种运行和暂停状态

当它运行时,按钮标签应该是“暂停”,如果它被暂停,那么它应该是“恢复”。你知道,比如说音乐播放器

如果活动总是运行的话,这不会是一个问题。然后,我会将意图发送到活动,它会适当地更改按钮标签。你知道,就像观察者模式。
但活动可能会被关闭。因此,如果活动已关闭,我应该如何从服务更新视图?

您需要将活动本地绑定到服务中

我强烈建议您仔细阅读本教程,开始学习:


基本上,您必须通过接口或服务本身与您的服务交互。祝你好运

活动未运行时,无法更新其视图

如果活动未运行,则可以使用SharedReferences保存服务状态(正在运行/已暂停)。打开活动后,读取状态并更新按钮文本


如果您的活动正在运行,您可以使用处理程序根据服务状态更新文本。

在我看来不是一个干净的解决方案。在android系统中,是否真的没有选项来实现离线消息的发布者-订阅者模式?就您的问题(从后台更新视图)而言,这是实现的最简单解决方案之一。