Android RadiusNetwork AltBeacon泄漏服务连接

Android RadiusNetwork AltBeacon泄漏服务连接,android,memory-leaks,altbeacon,Android,Memory Leaks,Altbeacon,MainActivity泄漏了最初绑定在这里的ServiceConnection org.altbeacon.beacon.Manager,这就是我面临的问题。我用的是图书馆里一个班级的AltBeacon。该类在实例化时被传递一个上下文元素。该类实现BeaconConsumer,重写的作用如下所示: @Override public Context getApplicationContext() { return mContext.getApplicationContext(); } @

MainActivity泄漏了最初绑定在这里的ServiceConnection org.altbeacon.beacon.Manager,这就是我面临的问题。我用的是图书馆里一个班级的AltBeacon。该类在实例化时被传递一个上下文元素。该类实现BeaconConsumer,重写的作用如下所示:

@Override
public Context getApplicationContext() {
    return mContext.getApplicationContext();
}
@Override
public boolean bindService(Intent intent, ServiceConnection connection, int mode) {
    return mContext.bindService(intent, connection, mode);
}

@Override
public void unbindService(ServiceConnection connection) {
    mContext.unbindService(connection);
}
@Override
public void onBeaconServiceConnect() {
         // do things
}
bindService可以工作,但是因为库中没有onDestroy,并且也从未调用finalize,所以永远不会调用unbindService。这导致上述泄漏

我怎样才能从中恢复过来?我不想公开一个特殊的清理功能,库应该能够检测到关闭时刻,并且应该在内部清理。可能吗

欢迎光临。
关于

确定,添加了清理功能。
已解决

即使用户3534326的答案作为答案无效,作为注释仍然有效。你能详细说明你是如何解决问题的,然后理想地将这个答案标记为已接受吗?非常感谢你!好吧,在一个月后发表评论并不容易,我越不明白你为什么打电话给用户3534326的答案。也许它被删除了。我记得在我的库中有一个额外的清理函数,它显式地进行了解除绑定,但那只是一段时间。当前解决方案在开始/停止扫描时进行绑定/解除绑定,因此这是对称的。我还认为,这个问题在以后的版本中已经被Beacon library的人解决了,但我不确定,谢谢你抽出时间。我说的确实是一个现在被删除的答案,其中只包含一些类似于你是如何解决它的东西。我确信很难回忆起你的解决办法。谢谢你的努力!希望用户能得到一些帮助。下一次,当你为你的问题找到解决方案时,如果你能像他一样分享未来愿景的细节,那就太棒了。无论如何,再次感谢您对这个旧案例的评论嗨,我能知道清理功能吗,我面临着同样的问题。@pallavi:我已经没有了。请看我11月11日至15日的评论,我是如何解决这个问题的