1

这是一个非常基本的问题,但我无法弄清楚,因为当我读到服务在主线程上运行时。那么为什么我们需要创建一个Service呢?并且因为对于密集的 CPU 任务,我们需要在 Service 中创建异步任务或线程,那么我们为什么不在活动或应用程序类中创建它们呢?

我想创建一个服务,它会在启动时连续执行一组任务。我在 Service 中找不到任何将循环运行的方法。有没有这样的方法?还是我必须在服务中创建一个线程来设置循环?

4

1 回答 1

2

为什么我们不在活动或应用程序类中创建它们?

你可以,但这取决于你想要完成的任务。a的主要特点Service是后台运行,与Activity生命周期解耦。

想象一下以下情况,您正在开发一个媒体播放器应用程序,并希望让用户在后台播放音乐,即使他们退出应用程序也是如此。

现在,如果您将媒体播放器逻辑放在 Activity 中,那么当用户离开应用程序时,音乐将停止,因为这将终止媒体播放器。这不好,我们希望音乐在他们离开应用程序时继续在后台播放。好吧,为了实现这一点,您应该将播放逻辑放在Service.

另外,看看IntentService类,它提供了自己的工作线程,所以你不应该定义你自己的。

我在 Service 中找不到任何将循环运行的方法。有没有这样的方法?

不,没有。您可以再次启动该服务,或者在该服务中创建一个循环。

于 2013-08-28T07:31:18.160 回答