onRebind()方法什么时候执行
2013-12-19 09:32
162 查看
前两节中可以看到Activity和Service,context.startService对应着Service中的onStart()方法,context.onBindService对应的是Service中的onBind()方法。当我们继想绑定一个Service又想在 Activity停止时,Service不会停止,我们可以先StartService,然后再BindService()。这时候的流程图如下所示:
点击查看大图
此时需要注意一个问题,当Activity退出的时候,Sercvice并不会停止,此时我们可以再进入Activity重新绑定,当这时候 Service就会调用onRebind()方法,但是调用onRebind()方法的前提是先前的onUnbind()方法执行成功,但是使用 super.onUnbind(intent)是执行不成功的,这时候我们要手动的使其返回true,再次绑定时Rebind()就会执行。否则,如果退出时不显示的指定onUnbind()为成功的话(为false),那么重新启动此Activity来绑定服务时,Service的onBind()方法和onReBind都不会执行,但是ServiceConnection方法确一定会回调了。这说明在Service中的onBind()方法不同于 onStart()方法不能被重复调用。
本节代码和上节代码大致相同,只不过是在bind之前先start service ,大家可以在DDMS中看onUnbind() onRebind()的调用情况。本节代码在此下载:http://down.51cto.com/data/326376
点击查看大图
此时需要注意一个问题,当Activity退出的时候,Sercvice并不会停止,此时我们可以再进入Activity重新绑定,当这时候 Service就会调用onRebind()方法,但是调用onRebind()方法的前提是先前的onUnbind()方法执行成功,但是使用 super.onUnbind(intent)是执行不成功的,这时候我们要手动的使其返回true,再次绑定时Rebind()就会执行。否则,如果退出时不显示的指定onUnbind()为成功的话(为false),那么重新启动此Activity来绑定服务时,Service的onBind()方法和onReBind都不会执行,但是ServiceConnection方法确一定会回调了。这说明在Service中的onBind()方法不同于 onStart()方法不能被重复调用。
本节代码和上节代码大致相同,只不过是在bind之前先start service ,大家可以在DDMS中看onUnbind() onRebind()的调用情况。本节代码在此下载:http://down.51cto.com/data/326376
相关文章推荐
- onSaveInstanceState方法会在什么时候被执行
- JAVA中对象什么时候死亡以及什么时候执行finalize()方法
- android中 onResume()方法什么时候执行 ??(转)
- 执行autorelease方法的对象什么时候被释放。
- onSaveInstanceState方法会在什么时候被执行
- SQLiteOpenHelper类的onCreate方法什么时候被执行--只有database.db不存在的时候
- Service 的 onRebind(Intent)方法在什么情况下会执行?
- SQLiteOpenHelper类的onCreate方法什么时候被执行
- Service的onRebind()方法什么时候会调用
- SQLiteOpenHelper类的onCreate方法什么时候被执行
- mysql 执行脚本的方法
- 线程中不执行delegate方法的原因
- sybase执行存储过程的方法
- php:exec执行root权限与php更新svn简单解决方法
- 关于ASP.NET MVC中Response.Redirect和RedirectToAction的BUG (跳转后继续执行后面代码而不结束进程)以及处理方法
- 详解win7 cmd执行vue不是内部命令的解决方法
- spring在web容器启动时执行初始化方法
- PowerShell计算脚本执行时间的实现方法
- struts方法被执行多次。
- Load runner 11在多台测试机上执行一个场景的方法