由于在某些情况下onDetachedFromWindow 未被调用, IntentReceiver 正在泄露。
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
mContext.unregisterReceiver(mScreenStateReceiver);
}
这是在大量测试设备和Android版本到Android 4.1.1之前发现的。我使用旧的以及最新的Eclipse 4.2.1编译,使用各种SDK工具版本,最高可达20.0.3。
示例 LogCat 可在此处找到: https://developers.google.com/mobile-ads-sdk/community/discussion?place=msg%2Fgoogle-admob-ads-sdk%2FVYSun9iD8tg%2FL3t6oSlrCbYJ
Activity myActivity has leaked IntentReceiver com.adsdk.sdk.banner.AdView that
was originally registered here. Are you missing a call to unregisterReceiver()?
认为这是已知错误: http://code.google.com/p/android/issues/detail?id=29399
有解决方法吗?非常感谢您提前解决这一挑战!
基督教
答案 0 :(得分:0)
我建议不要依赖'onAttachedToWindow'和& 'onDetachedFromWindow'。你可以添加配对操作,如'init'和amp; “破坏”来完成像'注册'这样的工作。 '取消注册'BroadcastReceiver。然后你可以完全控制以避免这种类型的泄漏。或者,您可以明确地调用onDetachedFromWindow。