android – 为什么要使用Service进行后台任务?

前端之家收集整理的这篇文章主要介绍了android – 为什么要使用Service进行后台任务?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一个活动可以使用AsyncTask或Handler框架进行后台工作.即使用户已经从启动它们的活动中移除,并且已经调用了该活动的onDestroy,两者都将继续工作.换句话说,即使在GUI关闭后,活动也完全有能力进行后台工作.

在这种情况下,使用服务作为后台工作似乎是冗余.服务带给活动无法做什么?谢谢.

解决方法

什么是服务

关于服务类的大多数混乱实际上是围绕着什么不是:

>服务不是一个单独的过程. Service对象本身并不意味着它在自己的进程中运行;除非另有说明,否则它运行在与应用程序相同的过程中.
>一个服务不是一个线程.在主线程上做工作不是一种手段(避免应用程序不响应错误).

因此,服务本身实际上非常简单,提供了两个主要特点:

>应用程序的一个设施,告诉系统在后台想要做的事情(即使用户没有直接与应用程序交互).这对应于对Context.startService()的调用,它要求系统调度服务的工作,直到服务或其他人明确地停止它才能运行.
>应用程序将其某些功能暴露给其他应用程序的功能.这对应于对Context.bindService()的调用,这允许对服务进行长期连接以便与其进行交互.

Read the rest of the documentation for more info

所以服务的一个实例就是你想要以固定的间隔自己发生的事情,而不必启动一个活动或者任何其他的“启动”.例如,SMSBackup只是一种在后台运行的服务,每X分钟轮询您的SMS消息并将其复制到gmail标签中作为“备份”服务.

猜你在找的Android相关文章