什么是服务?
长期在后台运行的没有运行界面的组件。
什么地方需要使用到服务?
天气预报, 后台的链接服务器的逻辑,每隔一段时间,获取最新的天气信息股票显示, 后台的链接服务器的逻辑,每隔一段时间,获取最新的股票信息
new Thread(){}.start(); 子线程没有界面,也是长期在后台运行的。
Android系统进场管理是按照一定规则的:
1.应用程序一旦被打开,通常情况下关闭(清空任务栈)后进程不会停止,方便下一次快速启动。
2.Android系统有一套内存清理机制。按照优先级去回收内存资源。
进程分为5个等级的优先级:(从高到低)
1.Foreground process 前台进程
2.Visible process 可视进程
3.Service process 服务进程
4.Background process 后台进程
5.Empty process 空进程
**使用服务的目的:
1.长期后台运行的组件,不要在Activity中开启子线程。应该创建服务,在服务里面开启子线程。可以提高进程的优先级,。
2.即便是回收了,内存充足的时候,该进程也会重新创建。
服务的生命周期:
1.onCreate(); 服务创建了。
2.onStartCommand() 服务接受到了开始指令。
3.onDestroy(); 服务被销毁。
关于绑定服务:
服务不能直接new 出来,要通过框架的调用。
服务在未绑定的时候,Activity开启了服务之后,就跟该服务没啥关系了,Activity与该service就没关系了。
可以通过onBind绑定,那么Activity和service同生共死。