理解 Android Service 的基础

Service 概念.jpg

从图中可以看到,Service 和 Application 一样,继承自 ContextWrapper,并且作为四大组件之一,也要在 manifest 文件中声明。
相比较 Activity 而言,Service 更抽象些,平时项目里用的也不太多,但其本质其实很简单的:

  • 不是一个独立进程也不是一个线程,它运行在应用进程中的主线程中。
  • 其作用就是做一些不需要用户交互或者需要较长时间运行的工作,或者提供一些功能供其他应用访问。

如果要求 Service 能够在子线程中做一些耗时任务,那么可以使用 JobIntentService,其他情况可以继承自 Service 来实现自己想要的功能。

Service 生命周期.jpg

因为启动 Service 的方式有两种,对应着其生命周期流转也有两种,两种方式既有相同又有不同,或者两种方式可以同时作用于同一个 Service,这就意味着生命周期方法都会被调用执行。

你可能感兴趣的:(理解 Android Service 的基础)