Android总结01_服务
来源:互联网 发布:移动公司网络部 编辑:程序博客网 时间:2024/06/06 04:32
Android服务(Service):顾名思义,就是和windows平台的服务一样,在后台默默的承担某些任务执行着,一般的实例例如音乐播放,后台wlan更新,定期访问某些接口等等
Service共分为两种:
1.无返回值的启动服务startService(),该服务不与前台产生任何关联,只能通过stopself()或者stopService()来关闭
2.有返回值的启动服务bindService(),改服务会在service启动后返回给启动器一个返回值,然后可以通过返回的IBinder对象来进行通信,当启动器关闭时,其也跟着关闭(必须有界面吗?)
生命周期方法
startService(Intent service)-->onCreate()-->onStartCommand(Intent intent,int flags,int startId)(多次启动,多次执行)->onDestroy()
startService()方法,由于每一个都是单例模式,所以每次启动传入的intent可以相同,也可以不同,每次启动时,onStartCommand方法都会执行一次,onStartCommand方法里面的第一个参数intent就是startService()里面传入的intent.
bindService(Intent service,ServiceConnection conn,int flags)->onCreate()->onBind(Intent intent)->onDestroy()
bindService()方法,每次启动时只能启动一次,即每一个activity都只能启动一次(启动不关闭的情况),多次bindService()并不会重复执行.
bindService()方法的第二个参数需要传一个ServiceConnection的实例化对象过去,用来保证activity和service之间的联系,第二个参数可以为空(但是写null时却报了错误,不知道在具体什么情况下才可以传null),到了OnBind()方法时,与startService()方法一样,intent都是启动时候传过来的service(),OnBind()方法需要返回一个IBinder对象,但不能新建一个类实现IBinder接口,那样返回的IBinder,系统不会将其送到ServiceConnection中的onServiceConnected方法中,返回的应该为Binder的子类对象.第二个activity实现bindService,也会获取同一个Binder的子类对象,但是并不会执行OnBind方法,只会执行ServiceConnection中的onServiceConnected方法,意思就是已经连接上了
目前服务可以在某些品牌手机清理时被杀死,已经在以前的文章列表中体现出来了
下面说一下onstartCommand的返回值,这个就是从别处照抄的
- START_STICKY(常量值:1):sticky的意思是“粘性的”。使用这个返回值时,我们启动的服务跟应用程序"粘"在一起,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务。当再次启动服务时,传入的第一个参数将为null;
- START_NOT_STICKY(常量值:2):“非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务。
- START_REDELIVER_INTENT(常量值:3):重传Intent。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,并将Intent的值传入。
- 【备注:】以上三种情况,可以理解为发生车祸后的人:
- START_STICKY:(常量值:1)车祸后自己苏醒,但是失忆;
- START_NOT_STICKY:(常量值:2)车祸后再也没有苏醒;
- START_REDELIVER_INTENT:(常量值:3)车祸后自己苏醒,依然保持记忆。
可以通过bindService和StartService方法访问同一个service,但是其中一个关闭了并不会导致service关闭,必须得两者都被关闭后,service才会关闭
- Android总结01_服务
- Android核心基础_广播_服务
- [android]_[adb启动服务]
- android 学习方法_总结
- Android 第八天_重置版_服务_注意事项
- android服务的总结
- Android 中的服务总结
- Android服务部分总结
- Android 动画_总结汇总
- Android服务Service 详解_百度文库
- android服务_音乐播放器
- Android 第八天_重置版_服务service
- android服务_使用服务注册特殊的广播接收者
- android服务_通过bindService调用服务里的方法
- 01_周总结
- 01_学期总结
- Android 服务通信方案总结
- Android服务Service使用总结
- python中断言读取json串中的json串
- 如何安全退出已调用多个Activity的Application?
- 递归法将整数转换为字符串
- hibernate检索策略
- MYSQL分库分表总结
- Android总结01_服务
- 文通TH-OCR文字识别软件 v11.1.0.3 最新免费版
- libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
- 解决虚拟机进入windows,oxc000035a问题。
- 在O(1)时间复杂度删除链表节点
- call apply 与 bind
- 24. Swap Nodes in Pairs
- objective-C学习笔记(六):OC之block和protocol
- 在我的lnmp环境上部署我的网站