Mat*_*ins 17 android serviceconnection
在我的Android应用程序,我打电话都startService和bindService:
Intent intent = new Intent(this, MyService.class);
ServiceConnection conn = new ServiceConnection() { ... }
startService(intent)
bindService(intent, conn, BIND_AUTO_CREATE);
后来,我尝试unbindService and停止服务`:
unbindService(conn);
stopService(intent);
但是,我在调用时遇到异常unbindService.如果我删除此呼叫,该应用似乎通过stopService呼叫正常运行.
难道我做错了什么?我认为bindService呼叫必须与unbindService呼叫相关联,并且startService呼叫必须与stopService呼叫相关联.但是,这似乎并非如此.
Mik*_*ery 26
stopService()的Android文档说明:
请注意,如果停止的服务仍然具有绑定到它的ServiceConnection对象并且设置了BIND_AUTO_CREATE,则在删除所有这些绑定之前不会销毁它.有关服务生命周期的更多详细信息,请参阅服务文档.
所以stopService()先呼叫然后unbindService()应该工作(这对我有用).
我遇到这个问题:
确保在调用bindService的相同上下文中调用unbindService.在我的情况下,我正在做以下绑定它:
Context c = getApplicationContext();
c.bindService(...);
然后取消绑定,只需:
unbindService(...);
确保bind和unbind使用相同的上下文解决了问题.
| 归档时间: | 
 | 
| 查看次数: | 17689 次 | 
| 最近记录: |