1

“MainActivity 泄露了最初绑定在这里的 ServiceConnection org.altbeacon.beacon.BeaconManager” ——这就是我面临的问题。我正在使用库中的一个类中的 AltBeacon。该类在实例化时传递了一个 Context 元素。该类实现了 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。这导致了上面提到的泄漏。

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

欢迎任何指针。问候

4

1 回答 1

0

好的,添加了清理功能。解决了

于 2014-10-13T15:02:26.637 回答