Service: 服务
Service 是Activity系统的核心组件之一. 因此需要继承和注册
Service 是内有界面的, 适合在后台长期的执行任务. (如放歌, 检测版本跟新, 下载, 上传等)
尽管Service适合长时间执行任务, 但是Service是运行在主线程上的. 所以在Service中执行耗时操作需要开启子线程来实现
Service生命周期:
1. 开启Service
onCreate() 第一次激活是调用
onStartCommand() 每次激活时都会被调用
2. 关闭Service
onDestroy()
开启与关闭Service:
开启:
Intent intent = new Intent(上下文, xxxService.class);
StartService(intent);
关闭:
Intent intent = new Intent(上下文, xxxService.class);
StopService(intent);
Service的粘性
当Service组件被意外终止时, 过一段时间会自动重新启动. 这个特性被称之为Service的粘性,.
Service 的粘性是由onStartCommand() 方法的返回值决定的. 该返回值可以使用常量表示,
取值有:
START_STICKY: 粘性的
START_STICKY_COMPATIBILITY: 兼容模式下的粘性
START_NOT_STICKY: 非粘性的
START_REDELIVER_INTENT: 粘性的, 且重新发送之前用于激活该Service的Intent对象