Serivce中onRebind被调用的时机很特别,想知道什么时候onRebind被调用,可以接下面的次序来学习,最后自然就明白了!
1. 首先要知道,同一个服务既可能被启动也可以被绑定;
2. Service中onRebind方法被调用,只要符合两个必要条件就行
(1)服务中onUnBind方法返回值为true
(2)服务对象被解绑后没有被销毁,之后再次被绑定
有两个场景,这里就举一个场景的例子,另外一个场景看原创文章:绑定服务时什么时候调用onRebind:
1.startService(onCreate, onStartCommand);
2.bindService(onBind);
3.unbindService(onUnBind,确保 onUnbind返回 true,由于服务被启动过,所以Service中onDestroy不会被调用);
4.再次bindService, 这次绑定的服务对象是之前已经创建好的,所以这次绑定服务时会调用onReBind方法,并且本次不会调用onBind方法。