2011.09.01(3)——— android service startService bindService

参考:http://blog.csdn.net/huanyufeng/article/details/5873407
http://www.cnblogs.com/allin/archive/2010/05/15/1736458.html

1 通过startService
使用context.startService() 启动Service是会会经历:
context.startService()  ->onCreate()- >onStart()->Service runningcontext.stopService() ->onDestroy() ->Service stop


如果是调用者自己直接退出而没有调用stopService的
话,Service会一直在后台运行。
下次调用者再起来可以stopService或者stopSelf来停止service。

2 通过bindService
context.bindService()->onCreate()->onBind()->Service runningonUnbind() -> onDestroy() ->Service stop


这个时候 调用者和TestService绑定在一起

调用者 退出了,Srevice就会调用停止
所谓绑定在一起就共存亡了。



在Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory在一个生命周期中只能被调用一次


要是这几个方法交织在一起的话,会出现什么情况呢?

一个原则是Service的onCreate的方法只会被调用一次,就是你无论多少次的startService又 bindService,Service只被创建一次。如果先是bind了,那么start的时候就直接运行Service的onStart方法,如果先 是start,那么bind的时候就直接运行onBind方法。如果你先bind上了,就stop不掉了,对啊,就是stopService不好使了,只 能先UnbindService, 再StopService,所以是先start还是先bind行为是有区别的。


09-02 08:19:29.034: INFO/System.out(7713): Test109-02 08:19:29.074: INFO/System.out(7713): onCreate09-02 08:19:29.083: INFO/System.out(7713): onBind09-02 08:19:29.183: INFO/System.out(7713): service connect09-02 08:19:42.373: INFO/System.out(7713): Test209-02 08:19:42.464: INFO/System.out(7713): service connect


由此可以看出来 一个service可以绑定多个activity,并且ServiceConnection也执行了多次

例子当中 有两个测试

1、MainActivity 测试onStart onBind
2、MainActivity为base 测试是否可以绑定多个activity




更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. 从jdk1.7.0获取MD5认证指纹方法
  5. Android(安卓)WebSocket通信通过Service来绑定
  6. Android(安卓)Touch事件
  7. Android中Scroller类的分析
  8. Android(安卓)TextView文字过多时通过滚动条显示多余内容
  9. Android(安卓)平铺背景图片

随机推荐

  1. Tinker使用时无法使用DefaultLifeCycle注
  2. android 之AndroidManifest.xml
  3. Android(安卓)自定义EditText (限制表情
  4. android2.2 android2.3.4 竖屏简单更改
  5. ubuntu13.04下小米真机调试
  6. Android(安卓)aidl 编译报couldn't find
  7. Android(安卓)ApiDemos示例解析(40):App->
  8. 使用Android(安卓)AlarmManager类定时执
  9. Android手机客户端通过JSP实现与Tomcat服
  10. Material Design系列,自定义Behavior实现A