Service--初探篇

Service

service是实现Android程序在后台运行的解决方案,处于主线程中,不能进行耗时的操作,可以开启线程执行耗时操作,适合于无需用户干预,且规则或长期运行的后台功能,有利于降低系统资源的消耗,优先级比Activity高,即使被终止,在系统资源恢复后会自己恢复运行状态,还可以用于IPC的通讯,解决不同Android应用程序之间的调用和通讯问题。

分类

按运行地点:本地服务和远程服务
按运行类型:前台服务和后台服务
按功能:可通讯服务和不可通讯服务

4个手动调用方法

startService():开启服务
stopService():关闭服务
bindService():绑定服务
unbindService():解绑服务
内部调用方法
onCreate():创建服务
onStartCommand():开始服务
onDestroy():销毁服务
onBind():绑定服务
onUnbind():解绑服务
绑定服务步骤:
  1. 创建Service,在service中创建内部类继承自Binder,然后在service中实例化该内部类
    在onBind中返回内部类对象。
  2. 注册service
  3. 在Activity中,创建ServiceConnection,在ServiceConnection的onServiceConnected()方法中得到service,在onServiceDisconnected将service置null注册service
  4. 在Activity中,创建ServiceConnection,在ServiceConnection的onServiceConnected()方法中得到service,在onServiceDisconnected将service置null
  5. 使用bindService(Service service,Context context ,ServiceConnection connection)绑定服务
IntentService

处理异步请求,实现多线程
工作流程
调用startService()请求IntentService,IntentService中onCreate方法通过HandlerThread单独开启一个线程依次处理Intent中请求对象所对应的任务,执行完所有Intent请求对象对应的工作后,若有新的Intent到达,继续执行下一个Intent请求,若无,IntentService自动停止,最后结束。
步骤
1.创建IntentService,复写onHandler()方法
2.注册IntentService
3.在Activity中使用,开启服务
在这里插入图片描述
在这里插入图片描述
AlarmManager
功能:实现一个后台定时任务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页