我创建了一个带有 socket.io(聊天服务)的服务,该服务在自身和三个活动之间具有双向通信。
该服务在“仪表板”活动中启动并绑定,并且必须在整个应用程序关闭后运行。当我移动到显示已连接用户的“聊天”活动时,我正在取消绑定“仪表板”并将“聊天”绑定到服务。
onStartCommand()
返回 START_STICKY。
当我绑定时,我在打电话bindService(i, this, 0)
这确实适用于 froyo 和姜饼,但我已经在 ICS 上进行了测试,当“仪表板”活动未绑定时服务停止,并且调用了服务中的 onDestroy() 方法。我已经尝试了一切,将 bindService 的标志设置为 Context.BIND_AUTO_CREATE,修改从 onStartCommand 返回的 START_STICKY 值,但我无法在活动之间保持服务活动。
有任何想法吗?
编辑:我发现了问题,在我的手机中,我有开发人员选项,当它不可见时不维护活动,这也扼杀了我的服务。但现在我想知道它是否会在内存较少的设备或激进的任务杀手上崩溃。