顾所周知,Service是Android的四大组件之一,那么我们在什么场景下回用到Service呢?一个是用于长期执行某些操作,并且甚至与UI(主)线程没有交互后台运行。比如启动app直接去网络下载文件或者播放音乐,二个是跨进程间通信,比如appA程序中Service被appB中程序调用。
需要注意一点:Service默认时运行在它所在的宿主进程的主进程中,也就是说如果我们在Service中做耗时操作,UI(主)线程会卡死,出现ANR程序无响应现象。为防止这种情况发生,我们一般都会在Service中新创建一个Thread线程来处理一些耗时操作,这样就不会阻塞主线程。所以Service不是另一个独立的进程,Service自己本身不会开辟一个新的进程,除非手动来设置。默认情况下,Service是运行在本运用程序所属的进程中。
启动Service的方法有两种:startService()和bindService(),其实这两个方法也有它们的应用场景。如果是运行在后台的Service,不与UI&#