第1页共42页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共42页Android后台服务,Android电话服务,SMS和MMS1.Service技术1.1.Service概念及用途:Adroid中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序,如果我们退出应用时,Service进程并没有结束,它仍然在后台运行,那我们什么时候会用到Service呢?比如我们播放音乐的时候,有可能想边听音乐边干些其他事情,当我们退出播放音乐的应用,如果不用Service,我们就听不到歌了,所以这时候就得用到Service了,又比如当我们一个应用的数据是通过网络获取的,不同时间(一段时间)的数据是不同的这时候我们可以用Service在后台定时更新,而不用每打开应用的时候在去获取。1.2.Service的类型Service有两种类型:A.本地服务(LocalService):用于应用程序内部B.远程服务(RemoteSercie):用于android系统内部的应用程序之间本地服务用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行,这样用户体验比较好。远程服务可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的即可。1.3.启动服务两种式:A.startService(intent):用该方式启动服务,该服务不会跟启动的应用程序绑定在一起,该服务启动完之后,应用程序终止,该服务会继续在后台运行B.bindService(intent,conn,Service.BIND_AUTO_CREATE):绑定服务,该服务会跟启动的应用程序绑定在一起,该服务启动完之后,如果应用程序终止,该服务会终止运行1.4.终止服务方式:A.由其它程序来终止服务,context.stopService(intent)或者context.unbindService(conn)B.由服务自己来终止:Service.stopSelf()或者Service.stopSelfResult(startId)1.5.Service生命周期:AndroidService的生命周期并不像Activity那么复杂,只有onCreate(),第2页共42页第1页共42页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共42页onStart(),onDestroy()三个方法,当我们第一次启动Service时,先后调用了onCreate(),onStart()这两个方法,当停止Service时,则执行onDestroy()方法,这里需要注意的是,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法,启动多次服务时,会调用onStart()方法多次,但onCreate()只被调用一次,无论onStart()方法调用多少次,停止服务服务只需调用一次即可而启动service,根据onStartCommand的返回值不同,有两个附加的模式:分析onStartCommand方法参数的作用和返回值的作用:1、根据这个方法的返回值不同可以有两种启动模式START_NOT_STICKY,START_STICKY,(当进程被杀死的时候,是否重新启动。如果是参数:START_REDELIVER_INTENT表示当服务所在进程被杀死后,重新启动,并且重新传递Intent内容,其它两个参数不会重新传递intent,都为null)2、返回START_REDELIVER_INTENT的时候,如果不论启动多少次,当重新启动的时候,也会启动多少次。3、是当前服务的标记4、第三个参数startId表示当前启动的Service的次数。第3页共42页第2页共42页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共42页看看官方给出的比较流程示意图:第4页共42页第3页共42页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第4页共42页官方文档告诉我们,一个service可以同时start并且bind,在这样的情况,系统会一直保持service的运行状态如果service已经start了或者BIND_AUTO_CREATE标志被设置。如果没有一个条件满足,那么系统将会调用onDestory方法来终止service.所有的清理工作(终止线程,反注册接收器)都在onDestory中完成。拥有service的进程具有较高的优先级官方文档告诉我们,Android系统会尽量保持拥有service的进程运行,只要在该service已经被启动(start)或者客户端连接(bindService)到它。当内存不足时,需要保持,拥有service的进程具有较高的优先级。第5页共42页第4页共42页编号:时间:2021年x月x...