这是一个非常基本的问题,但我无法弄明白,因为我读到Service在主线程上运行。那么为什么我们需要创建一个服务呢?因为对于强大的CPU任务,我们需要在Service中创建Async任务或线程,那么为什么我们不在活动或应用程序类中创建它们呢?
我想创建一个服务,它将在启动时连续执行一组任务。我在Service中找不到任何将在循环中运行的方法。有这样的方法吗?或者我是否必须在服务中创建一个线程来设置循环?
答案 0 :(得分:2)
为什么我们不在活动或应用程序类中创建它们?
你可以,但这取决于你想要完成的任务。 Service
的主要特征是它在后台运行,与Activity生命周期分离。
想象一下以下情况,您正在使用Media Player应用程序,并且希望让用户在后台播放音乐,即使他们退出应用程序。
现在,如果您将媒体播放器逻辑放在Activity中,那么当用户离开应用时,音乐将停止,因为这将终止媒体播放器。这不好,我们希望音乐在离开应用程序时继续在后台播放。好吧,为了实现这一点,你应该将播放逻辑放在Service
中。
另外,请查看IntentService类,它提供了自己的工作线程,因此您不应该定义自己的工作线程。
我在Service中找不到任何将在循环中运行的方法。在那儿 是这样的方法?
不,没有。您可以再次启动该服务,或者在服务中创建一个循环。