jcl*_*ova 6 service android bind
我开始使用以下服务:
private ServiceConnection _serviceConnection = new ServiceConnection() {...}
bindService(new Intent(this, MainService.class), _serviceConnection, Context.BIND_AUTO_CREATE);
Run Code Online (Sandbox Code Playgroud)
我想"重新启动"该服务.(我们不要争论为什么我要这样做)我这样做:
unbindService(_serviceConnection);
// Do some initialization on service
bindService(new Intent(this, MainService.class), _serviceConnection, Context.BIND_AUTO_CREATE);
Run Code Online (Sandbox Code Playgroud)
我注意到服务没有死(onDestroy不运行),直到我调用下一个bindService(); 因此,我在服务上做的一些静态初始化已被onDestroy()实现清除.
问题:如何确保unbindService()将停止服务(运行onDestory()),以便我可以在重新运行bindService()之后进行初始化?
问题:您如何确保 unbindService() 将停止服务(运行 onDestory()),以便我可以在之后进行初始化并重新运行 bindService()?
onDestroy()最后一个之后的时间unbindService()是不确定的,当然是异步的。您也可以尝试调用stopService()自己,但这也是异步的,因此您不知道它何时会停止。
我不知道有什么可靠的方法可以让您使用绑定模式“重新启动”服务。
即使在调用unbindService或之后,Android 也会自行决定保留服务stopService。
如果您需要立即在服务端重新初始化一些数据,您很可能需要提供一个服务方法来执行此操作。
| 归档时间: |
|
| 查看次数: |
12557 次 |
| 最近记录: |