bindService笔记
2013-01-20 22:04
441 查看
startService和bindService:
1 通过startService
Service会经历 onCreate --> onStart
stopService的时候直接onDestroy
如果是 调用者 直接退出而没有调用stopService的话,Service会一直在后台运行。
下次调用者再起来仍然可以stopService。
2 通过bindService
Service只会运行onCreate, 这个时候 调用者和Service绑定在一起(onBind?)
调用者退出了,Srevice就会调用onUnbind-->onDestroyed
所谓绑定在一起就共存亡了。
注意:Service的onCreate的方法只会被调用一次,
就是你无论多少次的startService又 bindService,Service只被创建一次。
如果先是bind了,那么start的时候就直接运行Service的onStart方法,
如果先是start,那么bind的时候就直接运行onBind方法。如果你先bind上了,就stop不掉了,
只能先UnbindService, 再StopService,所以是先start还是先bind行为是有区别的。
1 通过startService
Service会经历 onCreate --> onStart
stopService的时候直接onDestroy
如果是 调用者 直接退出而没有调用stopService的话,Service会一直在后台运行。
下次调用者再起来仍然可以stopService。
2 通过bindService
Service只会运行onCreate, 这个时候 调用者和Service绑定在一起(onBind?)
调用者退出了,Srevice就会调用onUnbind-->onDestroyed
所谓绑定在一起就共存亡了。
注意:Service的onCreate的方法只会被调用一次,
就是你无论多少次的startService又 bindService,Service只被创建一次。
如果先是bind了,那么start的时候就直接运行Service的onStart方法,
如果先是start,那么bind的时候就直接运行onBind方法。如果你先bind上了,就stop不掉了,
只能先UnbindService, 再StopService,所以是先start还是先bind行为是有区别的。
public class MusicService extends Service { private MusicServiceBinder binder = new MusicServiceBinder(); public class MusicServiceBinder extends Binder { public MusicService getMusicService() { return MusicService.this; } } @Override public IBinder onBind(Intent intent) { return binder; } public void playMusic() { ... } }
ServiceConnection serviceConn = new ServiceConnection() { public void onServiceDisconnected(ComponentName name) { } public void onServiceConnected(ComponentName name, IBinder service) { ((MusicServiceBinder)service).getMusicService().playMusic(); } }; context.bindService(serviceIntent, serviceConn, Context.BIND_AUTO_CREATE);
相关文章推荐
- Binder原理 2012.11.5
- 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
- Binder研究之一 制定计划
- Android进程间通信(IPC)机制Binder简要介绍和学习计划
- 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路(2)
- 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路(1)
- Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析(4)
- Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析(3)
- Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析(2)
- Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析(1) 推荐
- Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析(3)
- Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析(2)
- Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析
- Android应用程序绑定服务(bindService)的过程源代码分析(1)
- Android应用程序绑定服务(bindService)的过程源代码分析(2)
- Android应用程序绑定服务(bindService)的过程源代码分析(3)
- Android Service学习篇三:Service启动方式之bindService
- Android Service学习篇二:Service启动方式之startService
- 3. Android binder设计篇
- service初级:Activity与service间的联系、重写ServiceConnection