2011.09.01(3)——— android service startService bindService
16lz
2021-01-23
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
更多相关文章
- Android WebSocket通信通过Service来绑定
- android Environment 常用方法(获取存储目录)
- Android 获取控件宽高的3种方法
- Android中创建与几种解析xml的方法!
- android折叠展开列表测试
- Android当方法总数超过64K时(Android Studio)
- android ViewPager 使用方法
- Android 方法数超过64k限制的解决办法
- android的Services生命周期和使用方法