每天学习android之service

来源:互联网 发布:js文字展开折叠效果 编辑:程序博客网 时间:2024/06/05 07:39

service是android程序的四大组件之一。它不提供用户界面,主要是在后台执行长期运行的操作。


service本质上有两种形式:

1、被启动的service

该类service是其他组件通过调用startService()函数启动的。一经启动,该类service就会在后台无限期的运行,即使启动它的组件被摧毁也是一样。一般来讲,被启动的service执行单一的操作并且不会给启动它的组件返回一个结果。当操作完成后,service应该自己停止(程序作者控制)。

2、被绑定的service

当一个组件调用bindService()时,一个service就被绑定了。一个被绑定的service提供了接口以便和绑定的组件进行交互。一个被绑定的组件只有在有组件绑定在其上时才会执行。一个service可以被多个组件绑定。但是当所有绑定在其上的组件都解除绑定时,该service会被销毁。


一个service可以同时被启动和被绑定,这只是取决于你实现了哪些回调函数。


一个service运行于它的宿主进程的主线程中,所以当你的service要执行的操作可能引起CPU紧张或者进程阻塞时,最好给它新开一个进程。这会降低发生ANR错误的风险。