Java 服务还是活动?

Java 服务还是活动?,java,android,service,android-activity,Java,Android,Service,Android Activity,我正在努力决定使用哪个类,活动还是服务。 我的应用程序很复杂,所以我将使用另一个示例。计时器 我想创建一个应用程序,当我打开应用程序时开始计算秒数,甚至当我单击后退按钮时也继续计算秒数。 当我回到应用程序时,它将有一个gui显示时间 因此,我猜gui应该是活动,计数方法应该在服务上。。但我如何管理这个系统?他们将如何沟通?我该怎么做呢?他们可以通过意图进行通信,或者通过共享存储或内容提供商进行通信,您可以使用广播接收器发送活动将收听的广播,或者,您可以使用Messenger将信息从服务发送到活动

我正在努力决定使用哪个类,活动还是服务。 我的应用程序很复杂,所以我将使用另一个示例。计时器

我想创建一个应用程序,当我打开应用程序时开始计算秒数,甚至当我单击后退按钮时也继续计算秒数。 当我回到应用程序时,它将有一个gui显示时间


因此,我猜gui应该是活动,计数方法应该在服务上。。但我如何管理这个系统?他们将如何沟通?我该怎么做呢?

他们可以通过意图进行通信,或者通过共享存储或内容提供商进行通信,

您可以使用广播接收器发送活动将收听的广播,或者,您可以使用Messenger将信息从服务发送到活动

如果您只需要这样做,那么您只需使用显示时间的
活动
。当您退出活动时,只需在首选项中保存该时刻的时间。当你回来的时候,计算节省时间所花费的时间并显示出来。这是一个解决方案,但是你缺少了在后台运行应用程序的要点“这是一个解决方案,但是你缺少了在后台运行应用程序的要点”——然后想出一个比这更好的假想方案。你不需要在后台运行任何东西就可以跟踪运行时间。正如我所说的,这只是一个计时器。我正在寻找服务和活动之间的通信。有很多方法可以执行“服务和活动之间的通信”。对于给定的情况,哪一个(或哪一个)是最好的取决于该情况。对于计时器的情况,正确的方法是首先不写服务。为什么他们必须发送意图?他们都关心的唯一一件事是时间值。不应该只是一个int?但是怎么做呢?因为活动和服务的生命周期。您可以在其中一个类中设置一个静态字段并从两个类中访问它,这是一个非常难看的把戏,但我只是为了让您知道这在技术上是可能的,这绝对不是您应该这样做的方式。如果活动应该停止/启动服务?这些选项仍然是首选的?我相信是的,因为假设活动停止了服务,将不会发送和接收广播或消息。我不熟悉这些类,所以我现在更喜欢通过一段代码停止服务,比如server.stop()有可能吗?这里有一个链接可以阅读中的广播接收器,这里有一个服务链接,它将告诉您如何停止服务