这是自己的笔记总结,说的可能不清楚,纯属为了提醒自己回忆使用。
Service是Android的四大组件之一:所以记得在清单文件中注册。
Service的分类:
(一)启动service:做完之后不会告诉activity
(二)绑定service:交互
启动service又分为:
(1)粘性service:关不掉,由于内存紧张关闭后会重新复活
(2)非粘性service:死了就死了。
区分粘性和非粘性的区别是:看onStartCommand的返回值。
如果在为返回之前系统崩溃,则不存在粘性和非粘性。
非粘性 :返回值是START_NOT_STICKY 系统杀死,再启动需要自己起startService
粘性:返回值START_STICKY 服务死了之后自己起,但是不是调用startSerivce,而是直接调用service的startCommand方法,所有传过来的intent为null.
返回值START_REDELIVER_INTENT: 死了之后系统自己起,但还是会传过来最后一个intent,(由于最后一个导致死亡的,所以再传这个intent可能还会死亡,但是死了四五次就不会再自动启动了。)