service简介

service

主要作用
  • 在后台执行任务,例如播放音乐,下载东西
和thread区别?
  • thread是一个新的线程,当activity被销毁后,不能控制thread。但是service可以被多个activity控制
  • service的销毁可以和activity绑定(bind),也可以不和activity绑定(start),这样service就能更加灵活了。
1.生命周期
  • bind方式启动:create->bind->unBind->destory
  • start方式启动:create->startCommand->destory
2.启动方式
  • bind方式:只会调用一次create,在调用后调用bind,此后就会一直在后台运行。直到调用unBind后,service就会被销毁。如果在service被bind且还未销毁时,重复调用bind,则不会任何事情。
  • start方式:只会调用一次create,在调用后调用startCommand,此后也会在后台运行,直到调用stopService,或者stopSelf销毁。在运行时期重复调用start方法,则会一直调用startCommand。
3.结束方式
  • 当service仅通过bind启动时:调用unBind,或者启动service的context被回收后(一般情况是activity被finsh了),service就会被销毁。
  • 当service仅通过start启动时:调用stopService或者自身调用stopSelf后,被销毁。
  • 当service又bind,又start时:需要调用unBind和stop两个方法才能进行销毁。或者bind的context被回收,再stop。
常见选项

android:name   ------  服务类名
android:label   ------  服务的名字,如果此项不设置,那么默认显示的服务名则为类名
android:icon   ------  服务的图标
android:permission -------  申明此服务的权限,这意味着只有提供了该权限的应用才能控制或连接此服务
android:process  ----------  表示该服务是否运行在另外一个进程,如果设置了此项,那么将会在包名后面加上这段字符串表示另一进程的名字
android:enabled  ----------  如果此项设置为 true,那么 Service 将会默认被系统启动,不设置默认此项为 false
android:exported  ---------  表示该服务是否能够被其他应用程序所控制或连接,不设置默认此项为 false

おすすめ

転載: blog.csdn.net/weixin_43637780/article/details/127229197