为什么我们需要创建Android服务

时间:2013-08-28 07:15:30

标签: android multithreading android-service

这是一个非常基本的问题,但我无法弄明白,因为我读到Service在主线程上运行。那么为什么我们需要创建一个服务呢?因为对于强大的CPU任务,我们需要在Service中创建Async任务或线程,那么为什么我们不在活动或应用程序类中创建它们呢?

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

1 个答案:

答案 0 :(得分:2)

  

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

你可以,但这取决于你想要完成的任务。 Service的主要特征是它在后台运行,与Activity生命周期分离。

想象一下以下情况,您正在使用Media Player应用程序,并且希望让用户在后台播放音乐,即使他们退出应用程序。

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

另外,请查看IntentService类,它提供了自己的工作线程,因此您不应该定义自己的工作线程。

  

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

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