服务Server
Service介绍
Service 服务 是四大组件之一 和Activity非常相似
后台运行 没有界面
在清单文件中注册 都有自己的生命周期
Service特点
Service 在后台运行 不用与用户进行交互 即使应用退出 服务也不会停止 当应用进程被杀死时 服务便会停止
Service运行在主线程中 但需要执行耗时操作的时候 需要在服务中创建子线程完成
Service的用途 播放音乐 后台下载大文件
Service的生命周期以及启动方式
1.启动方式:onCreate() — onStartCommand() — onDestroy()
开启服务:startService()
停止服务:在外部用stopService() 在内部用stopSelf()
注意:多次启动一个服务, 不会执行onCreate(), 每次都会执行onStartCommand()
2.绑定方式:onCreate() – onBind() — onUnbind() — onDestroy()
绑定服务:bindService()
解除绑定:unbindService()
注意:同一个服务, 只能被同一个启动源, 绑定一次, 除非解绑后, 可以再次绑定
3.先启动后绑定(常用): onCreate() – onStartCommand() – onBind() — onUnbind() – onDestroy()
onCreate() --> 服务被创建时调用
onStartCommand() --> 服务被启动时调用
onBind() --> 服务被绑定时调用
onUnbind() --> 服务解除绑定时调用
onDestroy() --> 服务被销毁时调用
startService 和 bindService的区别
start方式
bind方式
和Activity的关系
一旦开启,长期后台运行,和Activity没有关系
如果开启者(Activity)退出了,服务也会跟着挂掉
是否可以调用服务中的方法
开启者Activity不能调用服务里的方法
开启者(Activity)可以间接的利用中间人调用服务里面的方法
如何创建Service
定义一个类 继承Service
重写父类的方法 onBind()
在清单文件中注册
start方式
MyService类
import android.app.Service;
import android.content.Intent;