2011.09.01(3)——— android service startService bindService
16lz
2021-12-04
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是会会经历:
如果是调用者自己直接退出而没有调用stopService的
话,Service会一直在后台运行。
下次调用者再起来可以stopService或者stopSelf来停止service。
2 通过bindService
这个时候 调用者和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行为是有区别的。
由此可以看出来 一个service可以绑定多个activity,并且ServiceConnection也执行了多次
例子当中 有两个测试
1、MainActivity 测试onStart onBind
2、MainActivity为base 测试是否可以绑定多个activity
参考: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
更多相关文章
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用
- python list.sort()根据多个关键字排序的方法实现
- 从jdk1.7.0获取MD5认证指纹方法
- Android(安卓)WebSocket通信通过Service来绑定
- Android(安卓)Touch事件
- Android中Scroller类的分析
- Android(安卓)TextView文字过多时通过滚动条显示多余内容
- Android(安卓)平铺背景图片